A/MNCmP5IVRjAAAAAAAAAAAGAAAAQAAAAHMaAQAAZAAAWgAAZAEAZAIAbAEAWgEAZAEAZAIAbAIAWgIAZAEAZAIAbAMAWgMAeRAAZAEAZAIAbAQAWgQAV24XAARlBQBrCgByUwABAQFkAgBaBABuAQBYZAMAZwEAWgcAZAQAWggAZAUAWgkAZAYAWgoAZQIAagsAZAcAawIAcooAZQMAagwAWg0AbgkAZQMAagMAWg0AZAgAWg4AZAkAhAAAWg8AZAoAhAAAWhAAZAMAZBEAZAsAhAAAgwAAWVoRAGQMAGQMAGUNAGUJAGQNAIQEAFoSAGQMAGQMAGUNAGUKAGUJAGQOAIQFAFoTAGQCAGQPAIQBAFoUAGUVAGQQAGsCAHIWAWUCAGoWAGUUAIMAAIMBAAFuAABkAgBTKBIAAABzhAkAAFRvb2wgZm9yIG1lYXN1cmluZyBleGVjdXRpb24gdGltZSBvZiBzbWFsbCBjb2RlIHNuaXBwZXRzLgoKVGhpcyBtb2R1bGUgYXZvaWRzIGEgbnVtYmVyIG9mIGNvbW1vbiB0cmFwcyBmb3IgbWVhc3VyaW5nIGV4ZWN1dGlvbgp0aW1lcy4gIFNlZSBhbHNvIFRpbSBQZXRlcnMnIGludHJvZHVjdGlvbiB0byB0aGUgQWxnb3JpdGhtcyBjaGFwdGVyIGluCnRoZSBQeXRob24gQ29va2Jvb2ssIHB1Ymxpc2hlZCBieSBPJ1JlaWxseS4KCkxpYnJhcnkgdXNhZ2U6IHNlZSB0aGUgVGltZXIgY2xhc3MuCgpDb21tYW5kIGxpbmUgdXNhZ2U6CiAgICBweXRob24gdGltZWl0LnB5IFstbiBOXSBbLXIgTl0gWy1zIFNdIFstdF0gWy1jXSBbLWhdIFstLV0gW3N0YXRlbWVudF0KCk9wdGlvbnM6CiAgLW4vLS1udW1iZXIgTjogaG93IG1hbnkgdGltZXMgdG8gZXhlY3V0ZSAnc3RhdGVtZW50JyAoZGVmYXVsdDogc2VlIGJlbG93KQogIC1yLy0tcmVwZWF0IE46IGhvdyBtYW55IHRpbWVzIHRvIHJlcGVhdCB0aGUgdGltZXIgKGRlZmF1bHQgMykKICAtcy8tLXNldHVwIFM6IHN0YXRlbWVudCB0byBiZSBleGVjdXRlZCBvbmNlIGluaXRpYWxseSAoZGVmYXVsdCAncGFzcycpCiAgLXQvLS10aW1lOiB1c2UgdGltZS50aW1lKCkgKGRlZmF1bHQgb24gVW5peCkKICAtYy8tLWNsb2NrOiB1c2UgdGltZS5jbG9jaygpIChkZWZhdWx0IG9uIFdpbmRvd3MpCiAgLXYvLS12ZXJib3NlOiBwcmludCByYXcgdGltaW5nIHJlc3VsdHM7IHJlcGVhdCBmb3IgbW9yZSBkaWdpdHMgcHJlY2lzaW9uCiAgLWgvLS1oZWxwOiBwcmludCB0aGlzIHVzYWdlIG1lc3NhZ2UgYW5kIGV4aXQKICAtLTogc2VwYXJhdGUgb3B0aW9ucyBmcm9tIHN0YXRlbWVudCwgdXNlIHdoZW4gc3RhdGVtZW50IHN0YXJ0cyB3aXRoIC0KICBzdGF0ZW1lbnQ6IHN0YXRlbWVudCB0byBiZSB0aW1lZCAoZGVmYXVsdCAncGFzcycpCgpBIG11bHRpLWxpbmUgc3RhdGVtZW50IG1heSBiZSBnaXZlbiBieSBzcGVjaWZ5aW5nIGVhY2ggbGluZSBhcyBhCnNlcGFyYXRlIGFyZ3VtZW50OyBpbmRlbnRlZCBsaW5lcyBhcmUgcG9zc2libGUgYnkgZW5jbG9zaW5nIGFuCmFyZ3VtZW50IGluIHF1b3RlcyBhbmQgdXNpbmcgbGVhZGluZyBzcGFjZXMuICBNdWx0aXBsZSAtcyBvcHRpb25zIGFyZQp0cmVhdGVkIHNpbWlsYXJseS4KCklmIC1uIGlzIG5vdCBnaXZlbiwgYSBzdWl0YWJsZSBudW1iZXIgb2YgbG9vcHMgaXMgY2FsY3VsYXRlZCBieSB0cnlpbmcKc3VjY2Vzc2l2ZSBwb3dlcnMgb2YgMTAgdW50aWwgdGhlIHRvdGFsIHRpbWUgaXMgYXQgbGVhc3QgMC4yIHNlY29uZHMuCgpUaGUgZGlmZmVyZW5jZSBpbiBkZWZhdWx0IHRpbWVyIGZ1bmN0aW9uIGlzIGJlY2F1c2Ugb24gV2luZG93cywKY2xvY2soKSBoYXMgbWljcm9zZWNvbmQgZ3JhbnVsYXJpdHkgYnV0IHRpbWUoKSdzIGdyYW51bGFyaXR5IGlzIDEvNjB0aApvZiBhIHNlY29uZDsgb24gVW5peCwgY2xvY2soKSBoYXMgMS8xMDB0aCBvZiBhIHNlY29uZCBncmFudWxhcml0eSBhbmQKdGltZSgpIGlzIG11Y2ggbW9yZSBwcmVjaXNlLiAgT24gZWl0aGVyIHBsYXRmb3JtLCB0aGUgZGVmYXVsdCB0aW1lcgpmdW5jdGlvbnMgbWVhc3VyZSB3YWxsIGNsb2NrIHRpbWUsIG5vdCB0aGUgQ1BVIHRpbWUuICBUaGlzIG1lYW5zIHRoYXQKb3RoZXIgcHJvY2Vzc2VzIHJ1bm5pbmcgb24gdGhlIHNhbWUgY29tcHV0ZXIgbWF5IGludGVyZmVyZSB3aXRoIHRoZQp0aW1pbmcuICBUaGUgYmVzdCB0aGluZyB0byBkbyB3aGVuIGFjY3VyYXRlIHRpbWluZyBpcyBuZWNlc3NhcnkgaXMgdG8KcmVwZWF0IHRoZSB0aW1pbmcgYSBmZXcgdGltZXMgYW5kIHVzZSB0aGUgYmVzdCB0aW1lLiAgVGhlIC1yIG9wdGlvbiBpcwpnb29kIGZvciB0aGlzOyB0aGUgZGVmYXVsdCBvZiAzIHJlcGV0aXRpb25zIGlzIHByb2JhYmx5IGVub3VnaCBpbiBtb3N0CmNhc2VzLiAgT24gVW5peCwgeW91IGNhbiB1c2UgY2xvY2soKSB0byBtZWFzdXJlIENQVSB0aW1lLgoKTm90ZTogdGhlcmUgaXMgYSBjZXJ0YWluIGJhc2VsaW5lIG92ZXJoZWFkIGFzc29jaWF0ZWQgd2l0aCBleGVjdXRpbmcgYQpwYXNzIHN0YXRlbWVudC4gIFRoZSBjb2RlIGhlcmUgZG9lc24ndCB0cnkgdG8gaGlkZSBpdCwgYnV0IHlvdSBzaG91bGQKYmUgYXdhcmUgb2YgaXQuICBUaGUgYmFzZWxpbmUgb3ZlcmhlYWQgY2FuIGJlIG1lYXN1cmVkIGJ5IGludm9raW5nIHRoZQpwcm9ncmFtIHdpdGhvdXQgYXJndW1lbnRzLgoKVGhlIGJhc2VsaW5lIG92ZXJoZWFkIGRpZmZlcnMgYmV0d2VlbiBQeXRob24gdmVyc2lvbnMhICBBbHNvLCB0bwpmYWlybHkgY29tcGFyZSBvbGRlciBQeXRob24gdmVyc2lvbnMgdG8gUHl0aG9uIDIuMywgeW91IG1heSB3YW50IHRvCnVzZSBweXRob24gLU8gZm9yIHRoZSBvbGRlciB2ZXJzaW9ucyB0byBhdm9pZCB0aW1pbmcgU0VUX0xJTkVOTwppbnN0cnVjdGlvbnMuCmn/////TnQFAAAAVGltZXJzDAAAADx0aW1laXQtc3JjPmlAQg8AaQMAAAB0BQAAAHdpbjMyc4YAAAAKZGVmIGlubmVyKF9pdCwgX3RpbWVyKToKICAgICUoc2V0dXApcwogICAgX3QwID0gX3RpbWVyKCkKICAgIGZvciBfaSBpbiBfaXQ6CiAgICAgICAgJShzdG10KXMKICAgIF90MSA9IF90aW1lcigpCiAgICByZXR1cm4gX3QxIC0gX3QwCmMCAAAAAgAAAAUAAABDAAAAcxgAAAB8AABqAABkAQBkAQBkAgB8AQAUF4MCAFMoAwAAAHMqAAAASGVscGVyIHRvIHJlaW5kZW50IGEgbXVsdGktbGluZSBzdGF0ZW1lbnQucwEAAAAKdAEAAAAgKAEAAAB0BwAAAHJlcGxhY2UoAgAAAHQDAAAAc3JjdAYAAABpbmRlbnQoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L3RpbWVpdC5weXQIAAAAcmVpbmRlbnRaAAAAcwIAAAAAAmMCAAAAAwAAAAMAAAADAAAAcxYAAAB8AQCHAABmAQBkAQCGAQB9AgB8AgBTKAIAAABzPwAAAENyZWF0ZSBhIHRpbWVyIGZ1bmN0aW9uLiBVc2VkIGlmIHRoZSAic3RhdGVtZW50IiBpcyBhIGNhbGxhYmxlLmMDAAAABgAAAAIAAAATAAAAczkAAACIAACDAAABfAEAgwAAfQMAeBUAfAAARF0NAH0EAHwCAIMAAAFxFwBXfAEAgwAAfQUAfAUAfAMAGFMoAQAAAE4oAAAAACgGAAAAdAMAAABfaXR0BgAAAF90aW1lcnQFAAAAX2Z1bmN0AwAAAF90MHQCAAAAX2l0AwAAAF90MSgBAAAAdAUAAABzZXR1cCgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L3RpbWVpdC5weXQFAAAAaW5uZXJgAAAAcwwAAAAAAQcBCQENAQsBCQEoAAAAACgDAAAAUg0AAAB0BAAAAGZ1bmNSDgAAACgAAAAAKAEAAABSDQAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy90aW1laXQucHl0DgAAAF90ZW1wbGF0ZV9mdW5jXgAAAHMEAAAAAAISB2MAAAAAAAAAAAQAAABCAAAAc0cAAABlAABaAQBkAABaAgBkAQBkAQBlAwBkAgCEAwBaBABkBgBkAwCEAQBaBgBlBwBkBACEAQBaCABlCQBlBwBkBQCEAgBaCgBSUygHAAAAc0kCAABDbGFzcyBmb3IgdGltaW5nIGV4ZWN1dGlvbiBzcGVlZCBvZiBzbWFsbCBjb2RlIHNuaXBwZXRzLgoKICAgIFRoZSBjb25zdHJ1Y3RvciB0YWtlcyBhIHN0YXRlbWVudCB0byBiZSB0aW1lZCwgYW4gYWRkaXRpb25hbAogICAgc3RhdGVtZW50IHVzZWQgZm9yIHNldHVwLCBhbmQgYSB0aW1lciBmdW5jdGlvbi4gIEJvdGggc3RhdGVtZW50cwogICAgZGVmYXVsdCB0byAncGFzcyc7IHRoZSB0aW1lciBmdW5jdGlvbiBpcyBwbGF0Zm9ybS1kZXBlbmRlbnQgKHNlZQogICAgbW9kdWxlIGRvYyBzdHJpbmcpLgoKICAgIFRvIG1lYXN1cmUgdGhlIGV4ZWN1dGlvbiB0aW1lIG9mIHRoZSBmaXJzdCBzdGF0ZW1lbnQsIHVzZSB0aGUKICAgIHRpbWVpdCgpIG1ldGhvZC4gIFRoZSByZXBlYXQoKSBtZXRob2QgaXMgYSBjb252ZW5pZW5jZSB0byBjYWxsCiAgICB0aW1laXQoKSBtdWx0aXBsZSB0aW1lcyBhbmQgcmV0dXJuIGEgbGlzdCBvZiByZXN1bHRzLgoKICAgIFRoZSBzdGF0ZW1lbnRzIG1heSBjb250YWluIG5ld2xpbmVz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aW4gc3RhdGVtZW50LCB0aGUgc2V0dXAgc3RhdGVtZW50IGFuZAogICAgICAgIHRoZSB0aW1lciBmdW5jdGlvbiB0byBiZSB1c2VkIGFyZSBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLgogICAgICAgIE4oCQAAAHQJAAAAaXRlcnRvb2xzdAYAAAByZXBlYXRSIAAAAHQCAAAAZ2N0CQAAAGlzZW5hYmxlZHQHAAAAZGlzYWJsZVIOAAAAUhgAAAB0BgAAAGVuYWJsZSgFAAAAUiEAAAB0BgAAAG51bWJlcnQCAAAAaXR0BQAAAGdjb2xkdAYAAAB0aW1pbmcoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L3RpbWVpdC5weXQGAAAAdGltZWl0sgAAAHMUAAAAAAoGARUCDQEMAQoBAwEZAgYBDgFjAwAAAAYAAAADAAAAQwAAAHM9AAAAZwAAfQMAeDAAdAAAfAEAgwEARF0iAH0EAHwAAGoBAHwCAIMBAH0FAHwDAGoCAHwFAIMBAAFxEwBXfAMAUygBAAAAc+gDAABDYWxsIHRpbWVpdCgpIGEgZmV3IHRpbWVzLgoKICAgICAgICBUaGlzIGlzIGEgY29udmVuaWVuY2UgZnVuY3Rpb24gdGhhdCBjYWxscyB0aGUgdGltZWl0KCkKICAgICAgICByZXBlYXRlZGx5LCByZXR1cm5pbmcgYSBsaXN0IG9mIHJlc3VsdHMuICBUaGUgZmlyc3QgYXJndW1lbnQKICAgICAgICBzcGVjaWZpZXMgaG93IG1hbnkgdGltZXMgdG8gY2FsbCB0aW1laXQoKSwgZGVmYXVsdGluZyB0byAzOwogICAgICAgIHRoZSBzZWNvbmQgYXJndW1lbnQgc3BlY2lmaWVzIHRoZSB0aW1lciBhcmd1bWVudCwgZGVmYXVsdGluZwogICAgICAgIHRvIG9uZSBtaWxsaW9uLgoKICAgICAgICBOb3RlOiBpdCdzIHRlbXB0aW5nIHRvIGNhbGN1bGF0ZSBtZWFuIGFuZCBzdGFuZGFyZCBkZXZpYXRpb24KICAgICAgICBmcm9tIHRoZSByZXN1bHQgdmVjdG9yIGFuZCByZXBvcnQgdGhlc2UuICBIb3dldmVyLCB0aGlzIGlzIG5vdAogICAgICAgIHZlcnkgdXNlZnVsLiAgSW4gYSB0eXBpY2FsIGNhc2UsIHRoZSBsb3dlc3QgdmFsdWUgZ2l2ZXMgYQogICAgICAgIGxvd2VyIGJvdW5kIGZvciBob3cgZmFzdCB5b3VyIG1hY2hpbmUgY2FuIHJ1biB0aGUgZ2l2ZW4gY29kZQogICAgICAgIHNuaXBwZXQ7IGhpZ2hlciB2YWx1ZXMgaW4gdGhlIHJlc3VsdCB2ZWN0b3IgYXJlIHR5cGljYWxseSBub3QKICAgICAgICBjYXVzZWQgYnkgdmFyaWFiaWxpdHkgaW4gUHl0aG9uJ3Mgc3BlZWQsIGJ1dCBieSBvdGhlcgogICAgICAgIHByb2Nlc3NlcyBpbnRlcmZlcmluZyB3aXRoIHlvdXIgdGltaW5nIGFjY3VyYWN5LiAgU28gdGhlIG1pbigpCiAgICAgICAgb2YgdGhlIHJlc3VsdCBpcyBwcm9iYWJseSB0aGUgb25seSBudW1iZXIgeW91IHNob3VsZCBiZQogICAgICAgIGludGVyZXN0ZWQgaW4uICBBZnRlciB0aGF0LCB5b3Ugc2hvdWxkIGxvb2sgYXQgdGhlIGVudGlyZQogICAgICAgIHZlY3RvciBhbmQgYXBwbHkgY29tbW9uIHNlbnNlIHJhdGhlciB0aGFuIHN0YXRpc3RpY3MuCiAgICAgICAgKAMAAAB0BQAAAHJhbmdlUjUAAAB0BgAAAGFwcGVuZCgGAAAAUiEAAABSLAAAAFIxAAAAdAEAAABydAEAAABpdAEAAAB0KAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy90aW1laXQucHlSLAAAAMkAAABzCgAAAAAUBgETAQ8BEQFOKAsAAAB0CAAAAF9fbmFtZV9fdAoAAABfX21vZHVsZV9fdAcAAABfX2RvY19fdA0AAABkZWZhdWx0X3RpbWVyUiMAAABSIAAAAFIqAAAAdA4AAABkZWZhdWx0X251bWJlclI1AAAAdA4AAABkZWZhdWx0X3JlcGVhdFIsAAAAKAAAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L3RpbWVpdC5weVIAAAAAaQAAAHMKAAAABg4GAhIeDBsMF1IRAAAAYwQAAAAEAAAABAAAAEMAAABzGQAAAHQAAHwAAHwBAHwCAIMDAGoBAHwDAIMBAFMoAQAAAHNDAAAAQ29udmVuaWVuY2UgZnVuY3Rpb24gdG8gY3JlYXRlIFRpbWVyIG9iamVjdCBhbmQgY2FsbCB0aW1laXQgbWV0aG9kLigCAAAAUgAAAABSNQAAACgEAAAAUhIAAABSDQAAAFIYAAAAUjEAAAAoAAAAACgAAAAAc3EAAAAvaG9tZS92YWdyYW50L3JwbWJ1aWxkL0JVSUxEL2J1aWxkLXRvb2xjaGFpbi9vcHQvdG9vbGNoYWlucy9zdGJnY2MtNC44LTEuMC9weXRob24tcnVudGltZS9saWIvcHl0aG9uMi43L3RpbWVpdC5weVI1AAAA4wAAAHMCAAAAAANjBQAAAAUAAAAEAAAAQwAAAHMcAAAAdAAAfAAAfAEAfAIAgwMAagEAfAMAfAQAgwIAUygBAAAAc0MAAABDb252ZW5pZW5jZSBmdW5jdGlvbiB0byBjcmVhdGUgVGltZXIgb2JqZWN0IGFuZCBjYWxsIHJlcGVhdCBtZXRob2QuKAIAAABSAAAAAFIsAAAAKAUAAABSEgAAAFINAAAAUhgAAABSLAAAAFIxAAAAKAAAAAAoAAAAAHNxAAAAL2hvbWUvdmFncmFudC9ycG1idWlsZC9CVUlMRC9idWlsZC10b29sY2hhaW4vb3B0L3Rvb2xjaGFpbnMvc3RiZ2NjLTQuOC0xLjAvcHl0aG9uLXJ1bnRpbWUvbGliL3B5dGhvbjIuNy90aW1laXQucHlSLAAAAOgAAABzAgAAAAADYwEAAAAWAAAACgAAAEMAAABzZwMAAHwAAGQDAGsIAHIcAHQBAGoCAGQBAB99AABuAABk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