A/MNCk1crFFjAAAAAAAAAAAGAAAAQAAAAHMaAQAAZAAAWgAAZAEAZAIAbAEAWgEAZAEAZAIAbAIAWgIAZAEAZAIAbAMAWgMAeRAAZAEAZAIAbAQAWgQAV24XAARlBQBrCgByUwABAQFkAgBaBABuAQBYZAMAZwEAWgcAZAQAWggAZAUAWgkAZAYAWgoAZQIAagsAZAcAawIAcooAZQMAagwAWg0AbgkAZQMAagMAWg0AZAgAWg4AZAkAhAAAWg8AZAoAhAAAWhAAZAMAZBEAZAsAhAAAgwAAWVoRAGQMAGQMAGUNAGUJAGQNAIQEAFoSAGQMAGQMAGUNAGUKAGUJAGQOAIQFAFoTAGQCAGQPAIQBAFoUAGUVAGQQAGsCAHIWAWUCAGoWAGUUAIMAAIMBAAFuAABkAgBTKBIAAABzhAkAAFRvb2wgZm9yIG1lYXN1cmluZyBleGVjdXRpb24gdGltZSBvZiBzbWFsbCBjb2RlIHNuaXBwZXRzLgoKVGhpcyBtb2R1bGUgYXZvaWRzIGEgbnVtYmVyIG9mIGNvbW1vbiB0cmFwcyBmb3IgbWVhc3VyaW5nIGV4ZWN1dGlvbgp0aW1lcy4gIFNlZSBhbHNvIFRpbSBQZXRlcnMnIGludHJvZHVjdGlvbiB0byB0aGUgQWxnb3JpdGhtcyBjaGFwdGVyIGluCnRoZSBQeXRob24gQ29va2Jvb2ssIHB1Ymxpc2hlZCBieSBPJ1JlaWxseS4KCkxpYnJhcnkgdXNhZ2U6IHNlZSB0aGUgVGltZXIgY2xhc3MuCgpDb21tYW5kIGxpbmUgdXNhZ2U6CiAgICBweXRob24gdGltZWl0LnB5IFstbiBOXSBbLXIgTl0gWy1zIFNdIFstdF0gWy1jXSBbLWhdIFstLV0gW3N0YXRlbWVudF0KCk9wdGlvbnM6CiAgLW4vLS1udW1iZXIgTjogaG93IG1hbnkgdGltZXMgdG8gZXhlY3V0ZSAnc3RhdGVtZW50JyAoZGVmYXVsdDogc2VlIGJlbG93KQogIC1yLy0tcmVwZWF0IE46IGhvdyBtYW55IHRpbWVzIHRvIHJlcGVhdCB0aGUgdGltZXIgKGRlZmF1bHQgMykKICAtcy8tLXNldHVwIFM6IHN0YXRlbWVudCB0byBiZSBleGVjdXRlZCBvbmNlIGluaXRpYWxseSAoZGVmYXVsdCAncGFzcycpCiAgLXQvLS10aW1lOiB1c2UgdGltZS50aW1lKCkgKGRlZmF1bHQgb24gVW5peCkKICAtYy8tLWNsb2NrOiB1c2UgdGltZS5jbG9jaygpIChkZWZhdWx0IG9uIFdpbmRvd3MpCiAgLXYvLS12ZXJib3NlOiBwcmludCByYXcgdGltaW5nIHJlc3VsdHM7IHJlcGVhdCBmb3IgbW9yZSBkaWdpdHMgcHJlY2lzaW9uCiAgLWgvLS1oZWxwOiBwcmludCB0aGlzIHVzYWdlIG1lc3NhZ2UgYW5kIGV4aXQKICAtLTogc2VwYXJhdGUgb3B0aW9ucyBmcm9tIHN0YXRlbWVudCwgdXNlIHdoZW4gc3RhdGVtZW50IHN0YXJ0cyB3aXRoIC0KICBzdGF0ZW1lbnQ6IHN0YXRlbWVudCB0byBiZSB0aW1lZCAoZGVmYXVsdCAncGFzcycpCgpBIG11bHRpLWxpbmUgc3RhdGVtZW50IG1heSBiZSBnaXZlbiBieSBzcGVjaWZ5aW5nIGVhY2ggbGluZSBhcyBhCnNlcGFyYXRlIGFyZ3VtZW50OyBpbmRlbnRlZCBsaW5lcyBhcmUgcG9zc2libGUgYnkgZW5jbG9zaW5nIGFuCmFyZ3VtZW50IGluIHF1b3RlcyBhbmQgdXNpbmcgbGVhZGluZyBzcGFjZXMuICBNdWx0aXBsZSAtcyBvcHRpb25zIGFyZQp0cmVhdGVkIHNpbWlsYXJseS4KCklmIC1uIGlzIG5vdCBnaXZlbiwgYSBzdWl0YWJsZSBudW1iZXIgb2YgbG9vcHMgaXMgY2FsY3VsYXRlZCBieSB0cnlpbmcKc3VjY2Vzc2l2ZSBwb3dlcnMgb2YgMTAgdW50aWwgdGhlIHRvdGFsIHRpbWUgaXMgYXQgbGVhc3QgMC4yIHNlY29uZHMuCgpUaGUgZGlmZmVyZW5jZSBpbiBkZWZhdWx0IHRpbWVyIGZ1bmN0aW9uIGlzIGJlY2F1c2Ugb24gV2luZG93cywKY2xvY2soKSBoYXMgbWljcm9zZWNvbmQgZ3JhbnVsYXJpdHkgYnV0IHRpbWUoKSdzIGdyYW51bGFyaXR5IGlzIDEvNjB0aApvZiBhIHNlY29uZDsgb24gVW5peCwgY2xvY2soKSBoYXMgMS8xMDB0aCBvZiBhIHNlY29uZCBncmFudWxhcml0eSBhbmQKdGltZSgpIGlzIG11Y2ggbW9yZSBwcmVjaXNlLiAgT24gZWl0aGVyIHBsYXRmb3JtLCB0aGUgZGVmYXVsdCB0aW1lcgpmdW5jdGlvbnMgbWVhc3VyZSB3YWxsIGNsb2NrIHRpbWUsIG5vdCB0aGUgQ1BVIHRpbWUuICBUaGlzIG1lYW5zIHRoYXQKb3RoZXIgcHJvY2Vzc2VzIHJ1bm5pbmcgb24gdGhlIHNhbWUgY29tcHV0ZXIgbWF5IGludGVyZmVyZSB3aXRoIHRoZQp0aW1pbmcuICBUaGUgYmVzdCB0aGluZyB0byBkbyB3aGVuIGFjY3VyYXRlIHRpbWluZyBpcyBuZWNlc3NhcnkgaXMgdG8KcmVwZWF0IHRoZSB0aW1pbmcgYSBmZXcgdGltZXMgYW5kIHVzZSB0aGUgYmVzdCB0aW1lLiAgVGhlIC1yIG9wdGlvbiBpcwpnb29kIGZvciB0aGlzOyB0aGUgZGVmYXVsdCBvZiAzIHJlcGV0aXRpb25zIGlzIHByb2JhYmx5IGVub3VnaCBpbiBtb3N0CmNhc2VzLiAgT24gVW5peCwgeW91IGNhbiB1c2UgY2xvY2soKSB0byBtZWFzdXJlIENQVSB0aW1lLgoKTm90ZTogdGhlcmUgaXMgYSBjZXJ0YWluIGJhc2VsaW5lIG92ZXJoZWFkIGFzc29jaWF0ZWQgd2l0aCBleGVjdXRpbmcgYQpwYXNzIHN0YXRlbWVudC4gIFRoZSBjb2RlIGhlcmUgZG9lc24ndCB0cnkgdG8gaGlkZSBpdCwgYnV0IHlvdSBzaG91bGQKYmUgYXdhcmUgb2YgaXQuICBUaGUgYmFzZWxpbmUgb3ZlcmhlYWQgY2FuIGJlIG1lYXN1cmVkIGJ5IGludm9raW5nIHRoZQpwcm9ncmFtIHdpdGhvdXQgYXJndW1lbnRzLgoKVGhlIGJhc2VsaW5lIG92ZXJoZWFkIGRpZmZlcnMgYmV0d2VlbiBQeXRob24gdmVyc2lvbnMhICBBbHNvLCB0bwpmYWlybHkgY29tcGFyZSBvbGRlciBQeXRob24gdmVyc2lvbnMgdG8gUHl0aG9uIDIuMywgeW91IG1heSB3YW50IHRvCnVzZSBweXRob24gLU8gZm9yIHRoZSBvbGRlciB2ZXJzaW9ucyB0byBhdm9pZCB0aW1pbmcgU0VUX0xJTkVOTwppbnN0cnVjdGlvbnMuCmn/////TnQFAAAAVGltZXJzDAAAADx0aW1laXQtc3JjPmlAQg8AaQMAAAB0BQAAAHdpbjMyc4YAAAAKZGVmIGlubmVyKF9pdCwgX3RpbWVyKToKICAgICUoc2V0dXApcwogICAgX3QwID0gX3RpbWVyKCkKICAgIGZvciBfaSBpbiBfaXQ6CiAgICAgICAgJShzdG10KXMKICAgIF90MSA9IF90aW1lcigpCiAgICByZXR1cm4gX3QxIC0gX3QwCmMCAAAAAgAAAAUAAABDAAAAcxgAAAB8AABqAABkAQBkAQBkAgB8AQAUF4MCAFMoAwAAAHMqAAAASGVscGVyIHRvIHJlaW5kZW50IGEgbXVsdGktbGluZSBzdGF0ZW1lbnQucwEAAAAKdAEAAAAgKAEAAAB0BwAAAHJlcGxhY2UoAgAAAHQDAAAAc3JjdAYAAABpbmRlbnQoAAAAACgAAAAAc04AAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy90aW1laXQucHl0CAAAAHJlaW5kZW50WgAAAHMCAAAAAAJjAgAAAAMAAAADAAAAAwAAAHMWAAAAfAEAhwAAZgEAZAEAhgEAfQIAfAIAUygCAAAAcz8AAABDcmVhdGUgYSB0aW1lciBmdW5jdGlvbi4gVXNlZCBpZiB0aGUgInN0YXRlbWVudCIgaXMgYSBjYWxsYWJsZS5jAwAAAAYAAAACAAAAEwAAAHM5AAAAiAAAgwAAAXwBAIMAAH0DAHgVAHwAAERdDQB9BAB8AgCDAAABcRcAV3wBAIMAAH0FAHwFAHwDABhTKAEAAABOKAAAAAAoBgAAAHQDAAAAX2l0dAYAAABfdGltZXJ0BQAAAF9mdW5jdAMAAABfdDB0AgAAAF9pdAMAAABfdDEoAQAAAHQFAAAAc2V0dXAoAAAAAHNOAAAAL3RtcC9uZGstVXNlci9idWlsZGhvc3QvaW5zdGFsbC9wcmVidWlsdC9kYXJ3aW4teDg2XzY0L2xpYi9weXRob24yLjcvdGltZWl0LnB5dAUAAABpbm5lcmAAAABzDAAAAAABBwEJAQ0BCwEJASgAAAAAKAMAAABSDQAAAHQEAAAAZnVuY1IOAAAAKAAAAAAoAQAAAFINAAAAc04AAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy90aW1laXQucHl0DgAAAF90ZW1wbGF0ZV9mdW5jXgAAAHMEAAAAAAISB2MAAAAAAAAAAAQAAABCAAAAc0cAAABlAABaAQBkAABaAgBkAQBkAQBlAwBkAgCEAwBaBABkBgBkAwCEAQBaBgBlBwBkBACEAQBaCABlCQBlBwBkBQCEAgBaCgBSUygHAAAAc0kCAABDbGFzcyBmb3IgdGltaW5nIGV4ZWN1dGlvbiBzcGVlZCBvZiBzbWFsbCBjb2RlIHNuaXBwZXRzLgoKICAgIFRoZSBjb25zdHJ1Y3RvciB0YWtlcyBhIHN0YXRlbWVudCB0byBiZSB0aW1lZCwgYW4gYWRkaXRpb25hbAogICAgc3RhdGVtZW50IHVzZWQgZm9yIHNldHVwLCBhbmQgYSB0aW1lciBmdW5jdGlvbi4gIEJvdGggc3RhdGVtZW50cwogICAgZGVmYXVsdCB0byAncGFzcyc7IHRoZSB0aW1lciBmdW5jdGlvbiBpcyBwbGF0Zm9ybS1kZXBlbmRlbnQgKHNlZQogICAgbW9kdWxlIGRvYyBzdHJpbmcpLgoKICAgIFRvIG1lYXN1cmUgdGhlIGV4ZWN1dGlvbiB0aW1lIG9mIHRoZSBmaXJzdCBzdGF0ZW1lbnQsIHVzZSB0aGUKICAgIHRpbWVpdCgpIG1ldGhvZC4gIFRoZSByZXBlYXQoKSBtZXRob2QgaXMgYSBjb252ZW5pZW5jZSB0byBjYWxsCiAgICB0aW1laXQoKSBtdWx0aXBsZSB0aW1lcyBhbmQgcmV0dXJuIGEgbGlzdCBvZiByZXN1bHRzLgoKICAgIFRoZSBzdGF0ZW1lbnRzIG1heSBjb250YWluIG5ld2xpbmVzLCBhcyBsb25nIGFzIHRoZXkgZG9uJ3QgY29udGFpbgogICAgbXVsdGktbGluZSBzdHJpbmcgbGl0ZXJhbHMuCiAgICB0BAAAAHBhc3NjBAAAAAYAAAAEAAAAAgAAAHNjAQAAfAMAfAAA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UiEAAAB0BgAAAG51bWJlcnQCAAAAaXR0BQAAAGdjb2xkdAYAAAB0aW1pbmcoAAAAACgAAAAAc04AAAAvdG1wL25kay1Vc2VyL2J1aWxkaG9zdC9pbnN0YWxsL3ByZWJ1aWx0L2Rhcndpbi14ODZfNjQvbGliL3B5dGhvbjIuNy90aW1laXQucHl0BgAAAHRpbWVpdLIAAABzFAAAAAAKBgEVAg0BDAEKAQMBGQIGAQ4BYwMAAAAGAAAAAwAAAEMAAABzPQAAAGcAAH0DAHgwAHQAAHwBAIMBAERdIgB9BAB8AABqAQB8AgCDAQB9BQB8AwBqAgB8BQCDAQABcRMAV3wDAFMoAQAAAHPoAwAAQ2FsbCB0aW1laXQoKSBhIGZldyB0aW1lcy4KCiAgICAgICAgVGhpcyBpcyBhIGNvbnZlbmllbmNlIGZ1bmN0aW9uIHRoYXQgY2FsbHMgdGhlIHRpbWVpdCgpCiAgICAgICAgcmVwZWF0ZWRseSwgcmV0dXJuaW5nIGEgbGlzdCBvZiByZXN1bHRzLiAgVGhlIGZpcnN0IGFyZ3VtZW50CiAgICAgICAgc3BlY2lmaWVzIGhvdyBtYW55IHRpbWVzIHRvIGNhbGwgdGltZWl0KCksIGRlZmF1bHRpbmcgdG8gMzsKICAgICAgICB0aGUgc2Vjb25kIGFyZ3VtZW50IHNwZWNpZmllcyB0aGUgdGltZXIgYXJndW1lbnQsIGRlZmF1bHRpbmcKICAgICAgICB0byBvbmUgbWlsbGlvbi4KCiAgICAgICAgTm90ZTogaXQncyB0ZW1wdGluZyB0byBjYWxjdWxhdGUgbWVhbiBhbmQgc3RhbmRhcmQgZGV2aWF0aW9uCiAgICAgICAgZnJvbSB0aGUgcmVzdWx0IHZlY3RvciBhbmQgcmVwb3J0IHRoZXNlLiAgSG93ZXZlciwgdGhpcyBpcyBub3QKICAgICAgICB2ZXJ5IHVzZWZ1bC4gIEluIGEgdHlwaWNhbCBjYXNlLCB0aGUgbG93ZXN0IHZhbHVlIGdpdmVzIGEKICAgICAgICBsb3dlciBib3VuZCBmb3IgaG93IGZhc3QgeW91ciBtYWNoaW5lIGNhbiBydW4gdGhlIGdpdmVuIGNvZGUKICAgICAgICBzbmlwcGV0OyBoaWdoZXIgdmFsdWVzIGluIHRoZSByZXN1bHQgdmVjdG9yIGFyZSB0eXBpY2FsbHkgbm90CiAgICAgICAgY2F1c2VkIGJ5IHZhcmlhYmlsaXR5IGluIFB5dGhvbidzIHNwZWVkLCBidXQgYnkgb3RoZXIKICAgICAgICBwcm9jZXNzZXMgaW50ZXJmZXJpbmcgd2l0aCB5b3VyIHRpbWluZyBhY2N1cmFjeS4gIFNvIHRoZSBtaW4oKQogICAgICAgIG9mIHRoZSByZXN1bHQgaXMgcHJvYmFibHkgdGhlIG9ubHkgbnVtYmVyIHlvdSBzaG91bGQgYmUKICAgICAgICBpbnRlcmVzdGVkIGluLiAgQWZ0ZXIgdGhhdCwgeW91IHNob3VsZCBsb29rIGF0IHRoZSBlbnRpcmUKICAgICAgICB2ZWN0b3IgYW5kIGFwcGx5IGNvbW1vbiBzZW5zZSByYXRoZXIgdGhhbiBzdGF0aXN0aWNzLgogICAgICAgICgDAAAAdAUAAAByYW5nZVI1AAAAdAYAAABhcHBlbmQoBgAAAFIhAAAAUiwAAABSMQAAAHQBAAAAcnQBAAAAaXQBAAAAdCgAAAAAKAAAAABzTgAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L3RpbWVpdC5weVIsAAAAyQAAAHMKAAAAABQGARMBDwERAU4oCwAAAHQIAAAAX19uYW1lX190CgAAAF9fbW9kdWxlX190BwAAAF9fZG9jX190DQAAAGRlZmF1bHRfdGltZXJSIwAAAFIgAAAAUioAAAB0DgAAAGRlZmF1bHRfbnVtYmVyUjUAAAB0DgAAAGRlZmF1bHRfcmVwZWF0UiwAAAAoAAAAACgAAAAAKAAAAABzTgAAAC90bXAvbmRrLVVzZXIvYnVpbGRob3N0L2luc3RhbGwvcHJlYnVpbHQvZGFyd2luLXg4Nl82NC9saWIvcHl0aG9uMi43L3RpbWVpdC5weVIAAAAAaQAAAHMKAAAABg4GAhIeDBsMF1IRAAAAYwQAAAAEAAAABAAAAEMAAABzGQAAAHQAAHwAAHwBAHwCAIMDAGoBAHwDAIMBAFMoAQAAAHNDAAAAQ29udmVuaWVuY2UgZnVuY3Rpb24gdG8gY3JlYXRlIFRp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