CosPCjFjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wdWJsaWNfcHJvdG8zLnByb3RvEhhwcm90b2J1Zl91bml0dGVzdF9pbXBvcnQiIwoTUHVibGljSW1wb3J0TWVzc2FnZRIMCgFlGAEgASgFUgFlQh2qAhpHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvc0rvDQoGEgQgACgBCvYMCgEMEgMgABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjIoIEF1dGhvcjogbGl1amlzaUBnb29nbGUuY29tIChQaGVybCBMaXUpCgoICgECEgMiACEKCAoBCBIDJAA3CgkKAgglEgMkADcKCgoCBAASBCYAKAEKCgoDBAABEgMmCBsKCwoEBAACABIDJwENCgwKBQQAAgAFEgMnAQYKDAoFBAACAAESAycHCAoMCgUEAAIAAxIDJwsMYgZwcm90bzMKnxMKKmNzaGFycC9wcm90b3MvdW5pdHRlc3RfaW1wb3J0X3Byb3RvMy5wcm90bxIYcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0GjFjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wdWJsaWNfcHJvdG8zLnByb3RvIh0KDUltcG9ydE1lc3NhZ2USDAoBZBgBIAEoBVIBZCpZCgpJbXBvcnRFbnVtEhsKF0lNUE9SVF9FTlVNX1VOU1BFQ0lGSUVEEAASDgoKSU1QT1JUX0ZPTxAHEg4KCklNUE9SVF9CQVIQCBIOCgpJTVBPUlRfQkFaEAlCHaoCGkdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zSoARCgYSBCQANgEKnw4KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtABIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3aGljaCBpcyBpbXBvcnRlZCBieSB1bml0dGVzdF9wcm90bzMucHJvdG8gdG8gdGVzdCBpbXBvcnRpbmcuCgoICgECEgMmACEKCAoBCBIDKAA3CgkKAgglEgMoADcKHwoCAwASAysAQhoUIFRlc3QgcHVibGljIGltcG9ydAoKCQoCCgASAysHDQoKCgIEABIELQAvAQoKCgMEAAESAy0IFQoLCgQEAAIAEgMuAg4KDAoFBAACAAUSAy4CBwoMCgUEAAIAARIDLggJCgwKBQQAAgADEgMuDA0KCgoCBQASBDEANgEKCgoDBQABEgMxBQ8KCwoEBQACABIDMgIeCgwKBQUAAgABEgMyAhkKDAoFBQACAAISAzIcHQoLCgQFAAIBEgMzAhEKDAoFBQACAQESAzMCDAoMCgUFAAIBAhIDMw8QCgsKBAUAAgISAzQCEQoMCgUFAAICARIDNAIMCgwKBQUAAgICEgM0DxAKCwoEBQACAxIDNQIRCgwKBQUAAgMBEgM1AgwKDAoFBQACAwISAzUPEFAAYgZwcm90bzMKhbwBCiNjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X3Byb3RvMy5wcm90bxIScHJvdG9idWZfdW5pdHRlc3QzGipjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wcm90bzMucHJvdG8iqxYKDFRlc3RBbGxUeXBlcxIhCgxzaW5nbGVfaW50MzIYASABKAVSC3NpbmdsZUludDMyEiEKDHNpbmdsZV9pbnQ2NBgCIAEoA1ILc2luZ2xlSW50NjQSIwoNc2luZ2xlX3VpbnQzMhgDIAEoDVIMc2luZ2xlVWludDMyEiMKDXNpbmdsZV91aW50NjQYBCABKARSDHNpbmdsZVVpbnQ2NBIjCg1zaW5nbGVfc2ludDMyGAUgASgRUgxzaW5nbGVTaW50MzISIwoNc2luZ2xlX3NpbnQ2NBgGIAEoElIMc2luZ2xlU2ludDY0EiUKDnNpbmdsZV9maXhlZDMyGAcgASgHUg1zaW5nbGVGaXhlZDMyEiUKDnNpbmdsZV9maXhlZDY0GAggASgGUg1zaW5nbGVGaXhlZDY0EicKD3NpbmdsZV9zZml4ZWQzMhgJIAEoD1IOc2luZ2xlU2ZpeGVkMzISJwoPc2luZ2xlX3NmaXhlZDY0GAogASgQUg5zaW5nbGVTZml4ZWQ2NBIhCgxzaW5nbGVfZmxvYXQYCyABKAJSC3NpbmdsZUZsb2F0EiMKDXNpbmdsZV9kb3VibGUYDCABKAFSDHNpbmdsZURvdWJsZRIfCgtzaW5nbGVfYm9vbBgNIAEoCFIKc2luZ2xlQm9vbBIjCg1zaW5nbGVfc3RyaW5nGA4gASgJUgxzaW5nbGVTdHJpbmcSIQoMc2luZ2xlX2J5dGVzGA8gASgMUgtzaW5nbGVCeXRlcxJiChVzaW5nbGVfbmVzdGVkX21lc3NhZ2UYEiABKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSE3NpbmdsZU5lc3RlZE1lc3NhZ2USWAoWc2luZ2xlX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIUc2luZ2xlRm9yZWlnbk1lc3NhZ2USWwoVc2luZ2xlX2ltcG9ydF9tZXNzYWdlGBQgASgLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VSE3NpbmdsZUltcG9ydE1lc3NhZ2USWQoSc2luZ2xlX25lc3RlZF9lbnVtGBUgASgOMisucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhBzaW5nbGVOZXN0ZWRFbnVtEk8KE3NpbmdsZV9mb3JlaWduX2VudW0YFiABKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SEXNpbmdsZUZvcmVpZ25FbnVtElIKEnNpbmdsZV9pbXBvcnRfZW51bRgXIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtUhBzaW5nbGVJbXBvcnRFbnVtEm4KHHNpbmdsZV9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZVIZc2luZ2xlUHVibGljSW1wb3J0TWVzc2FnZRIlCg5yZXBlYXRlZF9pbnQzMhgfIAMoBVINcmVwZWF0ZWRJbnQzMhIlCg5yZXBlYXRlZF9pbnQ2NBggIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg9yZXBlYXRlZF91aW50MzIYISADKA1SDnJlcGVhdGVkVWludDMyEicKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBFIOcmVwZWF0ZWRVaW50NjQSJwoPcmVwZWF0ZWRfc2ludDMyGCMgAygRUg5yZXBlYXRlZFNpbnQzMhInCg9yZXBlYXRlZF9zaW50NjQYJCADKBJSDnJlcGVhdGVkU2ludDY0EikKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAdSD3JlcGVhdGVkRml4ZWQzMhIpChByZXBlYXRlZF9maXhlZDY0GCYgAygGUg9yZXBlYXRlZEZpeGVkNjQSKwoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA9SEHJlcGVhdGVkU2ZpeGVkMzISKwoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBBSEHJlcGVhdGVkU2ZpeGVkNjQSJQoOcmVwZWF0ZWRfZmxvYXQYKSADKAJSDXJlcGVhdGVkRmxvYXQSJwoPcmVwZWF0ZWRfZG91YmxlGCogAygBUg5yZXBlYXRlZERvdWJsZRIjCg1yZXBlYXRlZF9ib29sGCsgAygIUgxyZXBlYXRlZEJvb2wSJwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJUg5yZXBlYXRlZFN0cmluZxIlCg5yZXBlYXRlZF9ieXRlcxgtIAMoDFINcmVwZWF0ZWRCeXRlcxJmChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlElwKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIWcmVwZWF0ZWRGb3JlaWduTWVzc2FnZRJfChdyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZRgyIAMoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlUhVyZXBlYXRlZEltcG9ydE1lc3NhZ2USXQoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yKy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJTChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SE3JlcGVhdGVkRm9yZWlnbkVudW0SVgoUcmVwZWF0ZWRfaW1wb3J0X2VudW0YNSADKA4yJC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bVIScmVwZWF0ZWRJbXBvcnRFbnVtEnIKHnJlcGVhdGVkX3B1YmxpY19pbXBvcnRfbWVzc2FnZRg2IAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJbXBvcnRNZXNzYWdlUhtyZXBlYXRlZFB1YmxpY0ltcG9ydE1lc3NhZ2USIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEmIKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlSABSEm9uZW9mTmVzdGVkTWVzc2FnZRIjCgxvbmVvZl9zdHJpbmcYcSABKAlIAFILb25lb2ZTdHJpbmcSIQoLb25lb2ZfYnl0ZXMYciABKAxIAFIKb25lb2ZCeXRlcxofCg1OZXN0ZWRNZXNzYWdlEg4KAmJiGAEgASgFUgJiYiJWCgpOZXN0ZWRFbnVtEhsKF05FU1RFRF9FTlVNX1VOU1BFQ0lGSUVEEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCDQoLb25lb2ZfZmllbGQi3QEKEk5lc3RlZFRlc3RBbGxUeXBlcxI8CgVjaGlsZBgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0My5OZXN0ZWRUZXN0QWxsVHlwZXNSBWNoaWxkEjoKB3BheWxvYWQYAiABKAsyIC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzUgdwYXlsb2FkEk0KDnJlcGVhdGVkX2NoaWxkGAMgAygLMiYucHJvdG9idWZfdW5pdHRlc3QzLk5lc3RlZFRlc3RBbGxUeXBlc1INcmVwZWF0ZWRDaGlsZCJFChRUZXN0RGVwcmVjYXRlZEZpZWxkcxItChBkZXByZWNhdGVkX2ludDMyGAEgASgFQgIYAVIPZGVwcmVjYXRlZEludDMyIh4KDkZvcmVpZ25NZXNzYWdlEgwKAWMYASABKAVSAWMiMAoSVGVzdFJlc2VydmVkRmllbGRzSgQIAhADSgQIDxAQSgQICRAMUgNiYXJSA2JheiJqChFUZXN0Rm9yZWlnbk5lc3RlZBJVCg5mb3JlaWduX25lc3RlZBgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVINZm9yZWlnbk5lc3RlZCI7ChhUZXN0UmVhbGx5TGFyZ2VUYWdOdW1iZXISDAoBYRgBIAEoBVIBYRIRCgJiYhj///9/IAEoBVICYmIiXAoUVGVzdFJlY3Vyc2l2ZU1lc3NhZ2USNgoBYRgBIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0UmVjdXJzaXZlTWVzc2FnZVIBYRIMCgFpGAIgASgFUgFpIlAKFFRlc3RNdXR1YWxSZWN1cnNpb25BEjgKAmJiGAEgASgLMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNdXR1YWxSZWN1cnNpb25CUgJiYiJ1ChRUZXN0TXV0dWFsUmVjdXJzaW9uQhI2CgFhGAEgASgLMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNdXR1YWxSZWN1cnNpb25BUgFhEiUKDm9wdGlvbmFsX2ludDMyGAIgASgFUg1vcHRpb25hbEludDMyIlQKElRlc3RFbnVtQWxsb3dBbGlhcxI+CgV2YWx1ZRgBIAEoDjIoLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0RW51bVdpdGhEdXBWYWx1ZVIFdmFsdWUi+wMKF1Rlc3RDYW1lbENhc2VGaWVsZE5hbWVzEiYKDlByaW1pdGl2ZUZpZWxkGAEgASgFUg5QcmltaXRpdmVGaWVsZBIgCgtTdHJpbmdGaWVsZBgCIAEoCVILU3RyaW5nRmllbGQSPQoJRW51bUZpZWxkGAMgASgOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtUglFbnVtRmllbGQSRgoMTWVzc2FnZUZpZWxkGAQgASgLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUgxNZXNzYWdlRmllbGQSNgoWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBgHIAMoBVIWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBIwChNSZXBlYXRlZFN0cmluZ0ZpZWxkGAggAygJUhNSZXBlYXRlZFN0cmluZ0ZpZWxkEk0KEVJlcGVhdGVkRW51bUZpZWxkGAkgAygOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtUhFSZXBlYXRlZEVudW1GaWVsZBJWChRSZXBlYXRlZE1lc3NhZ2VGaWVsZBgKIAMoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIUUmVwZWF0ZWRNZXNzYWdlRmllbGQi/wEKElRlc3RGaWVsZE9yZGVyaW5ncxIbCglteV9zdHJpbmcYCyABKAlSCG15U3RyaW5nEhUKBm15X2ludBgBIAEoA1IFbXlJbnQSGQoIbXlfZmxvYXQYZSABKAJSB215RmxvYXQSaQoVc2luZ2xlX25lc3RlZF9tZXNzYWdlGMgBIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0RmllbGRPcmRlcmluZ3MuTmVzdGVkTWVzc2FnZVITc2luZ2xlTmVzdGVkTWVzc2FnZRovCg1OZXN0ZWRNZXNzYWdlEg4KAm9vGAIgASgDUgJvbxIOCgJiYhgBIAEoBVICYmIiWAoRU3BhcnNlRW51bU1lc3NhZ2USQwoLc3BhcnNlX2VudW0YASABKA4yIi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdFNwYXJzZUVudW1SCnNwYXJzZUVudW0iHwoJT25lU3RyaW5nEhIKBGRhdGEYASABKAlSBGRhdGEiIAoKTW9yZVN0cmluZxISCgRkYXRhGAEgAygJUgRkYXRhIh4KCE9uZUJ5dGVzEhIKBGRhdGEYASABKAxSBGRhdGEiHwoJTW9yZUJ5dGVzEhIKBGRhdGEYASABKAxSBGRhdGEiIgoMSW50MzJNZXNzYWdlEhIKBGRhdGEYASABKAVSBGRhdGEiIwoNVWludDMyTWVzc2FnZRISCgRkYXRhGAEgASgNUgRkYXRhIiIKDEludDY0TWVzc2FnZRISCgRkYXRhGAEgASgDUgRkYXRhIiMKDVVpbnQ2NE1lc3NhZ2USEgoEZGF0YRgBIAEoBFIEZGF0YSIhCgtCb29sTWVzc2FnZRISCgRkYXRhGAEgASgIUgRkYXRhIpMBCglUZXN0T25lb2YSGQoHZm9vX2ludBgBIAEoBUgAUgZmb29JbnQSHwoKZm9vX3N0cmluZxgCIAEoCUgAUglmb29TdHJpbmcSQwoLZm9vX21lc3NhZ2UYAyABKAsyIC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzSABSCmZvb01lc3NhZ2VCBQoDZm9vIu4ECg9UZXN0UGFja2VkVHlwZXMSJQoMcGFja2VkX2ludDMyGFogAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GFsgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhcIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GF0gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYXiADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhfIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhkIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYZiADKAhCAhABUgpwYWNrZWRCb29sEkQKC3BhY2tlZF9lbnVtGGcgAygOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtQgIQAVIKcGFja2VkRW51bSKoBQoRVGVzdFVucGFja2VkVHlwZXMSKQoOdW5wYWNrZWRfaW50MzIYWiADKAVCAhAAUg11bnBhY2tlZEludDMyEikKDnVucGFja2VkX2ludDY0GFsgAygDQgIQAFINdW5wYWNrZWRJbnQ2NBIrCg91bnBhY2tlZF91aW50MzIYXCADKA1CAhAAUg51bnBhY2tlZFVpbnQzMhIrCg91bnBhY2tlZF91aW50NjQYXSADKARCAhAAUg51bnBhY2tlZFVpbnQ2NBIrCg91bnBhY2tlZF9zaW50MzIYXiADKBFCAhAAUg51bnBhY2tlZFNpbnQzMhIrCg91bnBhY2tlZF9zaW50NjQYXyADKBJCAhAAUg51bnBhY2tlZFNpbnQ2NBItChB1bnBhY2tlZF9maXhlZDMyGGAgAygHQgIQAFIPdW5wYWNrZWRGaXhlZDMyEi0KEHVucGFja2VkX2ZpeGVkNjQYYSADKAZCAhAAUg91bnBhY2tlZEZpeGVkNjQSLwoRdW5wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhAAUhB1bnBhY2tlZFNmaXhlZDMyEi8KEXVucGFja2VkX3NmaXhlZDY0GGMgAygQQgIQAFIQdW5wYWNrZWRTZml4ZWQ2NBIpCg51bnBhY2tlZF9mbG9hdBhkIAMoAkICEABSDXVucGFja2VkRmxvYXQSKwoPdW5wYWNrZWRfZG91YmxlGGUgAygBQgIQAFIOdW5wYWNrZWREb3VibGUSJwoNdW5wYWNrZWRfYm9vbBhmIAMoCEICEABSDHVucGFja2VkQm9vbBJICg11bnBhY2tlZF9lbnVtGGcgAygOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtQgIQAFIMdW5wYWNrZWRFbnVtIp8CCiNUZXN0UmVwZWF0ZWRTY2FsYXJEaWZmZXJlbnRUYWdTaXplcxIpChByZXBlYXRlZF9maXhlZDMyGAwgAygHUg9yZXBlYXRlZEZpeGVkMzISJQoOcmVwZWF0ZWRfaW50MzIYDSADKAVSDXJlcGVhdGVkSW50MzISKgoQcmVwZWF0ZWRfZml4ZWQ2NBj+DyADKAZSD3JlcGVhdGVkRml4ZWQ2NBImCg5yZXBlYXRlZF9pbnQ2NBj/DyADKANSDXJlcGVhdGVkSW50NjQSJwoOcmVwZWF0ZWRfZmxvYXQY/v8PIAMoAlINcmVwZWF0ZWRGbG9hdBIpCg9yZXBlYXRlZF91aW50NjQY//8PIAMoBFIOcmVwZWF0ZWRVaW50NjQiKwobVGVzdENvbW1lbnRJbmplY3Rpb25NZXNzYWdlEgwKAWEYASABKAlSAWEiDAoKRm9vUmVxdWVzdCINCgtGb29SZXNwb25zZSISChBGb29DbGllbnRNZXNzYWdlIhIKEEZvb1NlcnZlck1lc3NhZ2UiDAoKQmFyUmVxdWVzdCINCgtCYXJSZXNwb25zZSISChBUZXN0RW1wdHlNZXNzYWdlIoIBCg5Db21tZW50TWVzc2FnZRISCgR0ZXh0GAEgASgJUgR0ZXh0GjcKFE5lc3RlZENvbW1lbnRNZXNzYWdlEh8KC25lc3RlZF90ZXh0GAEgASgJUgpuZXN0ZWRUZXh0IiMKEU5lc3RlZENvbW1lbnRFbnVtEg4KClpFUk9fVkFMVUUQACpZCgtGb3JlaWduRW51bRIXChNGT1JFSUdOX1VOU1BFQ0lGSUVEEAASDwoLRk9SRUlHTl9GT08QBBIPCgtGT1JFSUdOX0JBUhAFEg8KC0ZPUkVJR05fQkFaEAYqdQoUVGVzdEVudW1XaXRoRHVwVmFsdWUSKAokVEVTVF9FTlVNX1dJVEhfRFVQX1ZBTFVFX1VOU1BFQ0lGSUVEEAASCAoERk9PMRABEggKBEJBUjEQAhIHCgNCQVoQAxIICgRGT08yEAESCAoEQkFSMhACGgIQASqdAQoOVGVzdFNwYXJzZUVudW0SIAocVEVTVF9TUEFSU0VfRU5VTV9VTlNQRUNJRklFRBAAEgwKCFNQQVJTRV9BEHsSDgoIU1BBUlNFX0IQpucDEg8KCFNQQVJTRV9DELKxgAYSFQoIU1BBUlNFX0QQ8f//////////ARIVCghTUEFSU0VfRRC03vz///////8BEgwKCFNQQVJTRV9HEAIqHQoLQ29tbWVudEVudW0SDgoKWkVST19WQUxVRRAAMp0BCgtUZXN0U2VydmljZRJGCgNGb28SHi5wcm90b2J1Zl91bml0dGVzdDMuRm9vUmVxdWVzdBofLnByb3RvYnVmX3VuaXR0ZXN0My5Gb29SZXNwb25zZRJGCgNCYXISHi5wcm90b2J1Zl91bml0dGVzdDMuQmFyUmVxdWVzdBofLnByb3RvYnVmX3VuaXR0ZXN0My5CYXJSZXNwb25zZUIsQg1Vbml0dGVzdFByb3RvqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK2n8KBxIFJACWAwEK/w0KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMrABIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3ZSB3aWxsIHVzZSBmb3IgdW5pdCB0ZXN0aW5nLgoKCAoBCBIDJgA3CgkKAgglEgMmADcKCAoBCBIDKgAuCmAKAggIEgMqAC4aVSBPbmx5IHByZXNlbnQgc28gd2UgY2FuIHRlc3QgdGhhdCB3ZSBjYW4gcmVhZCBpdCAoYXMgYW4gZXhhbXBsZQogb2YgYSBub24tQyMgb3B0aW9uKQoKCQoCAwASAywANAoICgECEgMuABsKXAoCBAASBTIAggEBGk8gVGhpcyBwcm90byBpbmNsdWRlcyBldmVyeSB0eXBlIG9mIGZpZWxkIGluIGJvdGggc2luZ3VsYXIgYW5kIHJlcGVhdGVkCiBmb3Jtcy4KCgoKAwQAARIDMggUCgwKBAQAAwASBDMCOAMKDAoFBAADAAESAzMKFwrjAQoGBAADAAIAEgM3BBEa0wEgVGhlIGZpZWxkIG5hbWUgImIiIGZhaWxzIHRvIGNvbXBpbGUgaW4gcHJvdG8xIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGgKIGEgbG9jYWwgdmFyaWFibGUgbmFtZWQgImIiIGluIG9uZSBvZiB0aGUgZ2VuZXJhdGVkIG1ldGhvZHMuICBEb2guCiBUaGlzIGZpbGUgbmVlZHMgdG8gY29tcGlsZSBpbiBwcm90bzEgdG8gdGVzdCBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eS4KCg4KBwQAAwACAAUSAzcECQoOCgcEAAMAAgABEgM3CgwKDgoHBAADAAIAAxIDNw8QCgwKBAQABAASBDoCQAMKDAoFBAAEAAESAzoHEQoNCgYEAAQAAgASAzsEIAoOCgcEAAQAAgABEgM7BBsKDgoHBAAEAAIAAhIDOx4fCg0KBgQABAACARIDPAQMCg4KBwQABAACAQESAzwEBwoOCgcEAAQAAgECEgM8CgsKDQoGBAAEAAICEgM9BAwKDgoHBAAEAAICARIDPQQHCg4KBwQABAACAgISAz0KCwoNCgYEAAQAAgMSAz4EDAoOCgcEAAQAAgMBEgM+BAcKDgoHBAAEAAIDAhIDPgoLCigKBgQABAACBBIDPwQNIhkgSW50ZW50aW9uYWxseSBuZWdhdGl2ZS4KCg4KBwQABAACBAESAz8EBwoOCgcEAAQAAgQCEgM/CgwKFwoEBAACABIDQwIZGgogU2luZ3VsYXIKCgwKBQQAAgAFEgNDAgcKDAoFBAACAAESA0MIFAoMCgUEAAIAAxIDQxcYCgsKBAQAAgESA0QCGQoMCgUEAAIBBRIDRAIHCgwKBQQAAgEBEgNECBQKDAoFBAACAQMSA0QXGAoLCgQEAAICEgNFAhsKDAoFBAACAgUSA0UCCAoMCgUEAAICARIDRQkWCgwKBQQAAgIDEgNFGRoKCwoEBAACAxIDRgIbCgwKBQQAAgMFEgNGAggKDAoFBAACAwESA0YJFgoMCgUEAAIDAxIDRhkaCgsKBAQAAgQSA0cCGwoMCgUEAAIEBRIDRwIICgwKBQQAAgQBEgNHCRYKDAoFBAACBAMSA0cZGgoLCgQEAAIFEgNIAhsKDAoFBAACBQUSA0gCCAoMCgUEAAIFARIDSAkWCgwKBQQAAgUDEgNIGRoKCwoEBAACBhIDSQIdCgwKBQQAAgYFEgNJAgkKDAoFBAACBgESA0kKGAoMCgUEAAIGAxIDSRscCgsKBAQAAgcSA0oCHQoMCgUEAAIHBRIDSgIJCgwKBQQAAgcBEgNKChgKDAoFBAACBwMSA0obHAoLCgQEAAIIEgNLAh8KDAoFBAACCAUSA0sCCgoMCgUEAAIIARIDSwsaCgwKBQQAAggDEgNLHR4KCwoEBAACCRIDTAIgCgwKBQQAAgkFEgNMAgoKDAoFBAACCQESA0wLGgoMCgUEAAIJAxIDTB0fCgsKBAQAAgoSA00CGgoMCgUEAAIKBRIDTQIHCgwKBQQAAgoBEgNNCBQKDAoFBAACCgMSA00XGQoLCgQEAAILEgNOAhwKDAoFBAACCwUSA04CCAoMCgUEAAILARIDTgkWCgwKBQQAAgsDEgNOGRsKCwoEBAACDBIDTwIYCgwKBQQAAgwFEgNPAgYKDAoFBAACDAESA08HEgoMCgUEAAIMAxIDTxUXCgsKBAQAAg0SA1ACHAoMCgUEAAINBRIDUAIICgwKBQQAAg0BEgNQCRYKDAoFBAACDQMSA1AZGwoLCgQEAAIOEgNRAhoKDAoFBAACDgUSA1ECBwoMCgUEAAIOARIDUQgUCgwKBQQAAg4DEgNRFxkKCwoEBAACDxIDUwIrCgwKBQQAAg8GEgNTAg8KDAoFBAACDwESA1MQJQoMCgUEAAIPAxIDUygqCgsKBAQAAhASA1QCLQoMCgUEAAIQBhIDVAIQCgwKBQQAAhABEgNUEScKDAoFBAACEAMSA1QqLAoLCgQEAAIREgNVAkQKDAoFBAACEQYSA1UCKAoMCgUEAAIRARIDVSk+CgwKBQQAAhEDEgNVQUMKCwoEBAACEhIDVwIlCgwKBQQAAhIGEgNXAgwKDAoFBAACEgESA1cNHwoMCgUEAAISAxIDVyIkCgsKBAQAAhMSA1gCJwoMCgUEAAITBhIDWAINCgwKBQQAAhMBEgNYDiEKDAoFBAACEwMSA1gkJgoLCgQEAAIUEgNZAj4KDAoFBAACFAYSA1kCJQoMCgUEAAIUARIDWSY4CgwKBQQAAhQDEgNZOz0KNwoEBAACFRIEXAJdCRopIERlZmluZWQgaW4gdW5pdHRlc3RfaW1wb3J0X3B1YmxpYy5wcm90bwoKDAoFBAACFQYSA1wCLgoMCgUEAAIVARIDXC9LCgwKBQQAAhUDEgNdBggKFwoEBAACFhIDYAIlGgogUmVwZWF0ZWQKCgwKBQQAAhYEEgNgAgoKDAoFBAACFgUSA2ALEAoMCgUEAAIWARIDYBEfCgwKBQQAAhYDEgNgIiQKCwoEBAACFxIDYQIlCgwKBQQAAhcEEgNhAgoKDAoFBAACFwUSA2ELEAoMCgUEAAIXARIDYREfCgwKBQQAAhcDEgNhIiQKCwoEBAACGBIDYgInCgwKBQQAAhgEEgNiAgoKDAoFBAACGAUSA2ILEQoMCgUEAAIYARIDYhIhCgwKBQQAAhgDEgNiJCYKCwoEBAACGRIDYwInCgwKBQQAAhkEEgNjAgoKDAoFBAACGQUSA2MLEQoMCgUEAAIZARIDYxIhCgwKBQQAAhkDEgNjJCYKCwoEBAACGhIDZAInCgwKBQQAAhoEEgNkAgoKDAoFBAACGgUSA2QLEQoMCgUEAAIaARIDZBIhCgwKBQQAAhoDEgNkJCYKCwoEBAACGxIDZQInCgwKBQQAAhsEEgNlAgoKDAoFBAACGwUSA2ULEQoMCgUEAAIbARIDZRIhCgwKBQQAAhsDEgNlJCYKCwoEBAACHBIDZgIpCgwKBQQAAhwEEgNmAgoKDAoFBAACHAUSA2YLEgoMCgUEAAIcARIDZhMjCgwKBQQAAhwDEgNmJigKCwoEBAACHRIDZwIpCgwKBQQAAh0EEgNnAgoKDAoFBAACHQUSA2cLEgoMCgUEAAIdARIDZxMjCgwKBQQAAh0DEgNnJigKCwoEBAACHhIDaAIrCgwKBQQAAh4EEgNoAgoKDAoFBAACHgUSA2gLEwoMCgUEAAIeARIDaBQlCgwKBQQAAh4DEgNoKCoKCwoEBAACHxIDaQIrCgwKBQQAAh8EEgNpAgoKDAoFBAACHwUSA2kLEwoMCgUEAAIfARIDaRQlCgwKBQQAAh8DEgNpKCoKCwoEBAACIBIDagIlCgwKBQQAAiAEEgNqAgoKDAoFBAACIAUSA2oLEAoMCgUEAAIgARIDahEfCgwKBQQAAiADEgNqIiQKCwoEBAACIRIDawInCgwKBQQAAiEEEgNrAgoKDAoFBAACIQUSA2sLEQoMCgUEAAIhARIDaxIhCgwKBQQAAiEDEgNrJCYKCwoEBAACIhIDbAIjCgwKBQQAAiIEEgNsAgoKDAoFBAACIgUSA2wLDwoMCgUEAAIiARIDbBAdCgwKBQQAAiIDEgNsICIKCwoEBAACIxIDbQInCgwKBQQAAiMEEgNtAgoKDAoFBAACIwUSA20LEQoMCgUEAAIjARIDbRIhCgwKBQQAAiMDEgNtJCYKCwoEBAACJBIDbgIlCgwKBQQAAiQEEgNuAgoKDAoFBAACJAUSA24LEAoMCgUEAAIkARIDbhEfCgwKBQQAAiQDEgNuIiQKCwoEBAACJRIDcAI2CgwKBQQAAiUEEgNwAgoKDAoFBAACJQYSA3ALGAoMCgUEAAIlARIDcBkwCgwKBQQAAiUDEgNwMzUKCwoEBAACJhIDcQI4CgwKBQQAAiYEEgNxAgoKDAoFBAACJgYSA3ELGQoMCgUEAAImARIDcRoyCgwKBQQAAiYDEgNxNTcKCwoEBAACJxIDcgJPCgwKBQQAAicEEgNyAgoKDAoFBAACJwYSA3ILMQoMCgUEAAInARIDcjJJCgwKBQQAAicDEgNyTE4KCwoEBAACKBIDdAIwCgwKBQQAAigEEgN0AgoKDAoFBAACKAYSA3QLFQoMCgUEAAIoARIDdBYqCgwKBQQAAigDEgN0LS8KCwoEBAACKRIDdQIyCgwKBQQAAikEEgN1AgoKDAoFBAACKQYSA3ULFgoMCgUEAAIpARIDdRcsCgwKBQQAAikDEgN1LzEKCwoEBAACKhIDdgJJCgwKBQQAAioEEgN2AgoKDAoFBAACKgYSA3YLLgoMCgUEAAIqARIDdi9DCgwKBQQAAioDEgN2RkgKNwoEBAACKxIEeAJ5KhopIERlZmluZWQgaW4gdW5pdHRlc3RfaW1wb3J0X3B1YmxpYy5wcm90bwoKDAoFBAACKwQSA3gCCgoMCgUEAAIrBhIDeAs3CgwKBQQAAisBEgN5BiQKDAoFBAACKwMSA3knKQofCgQEAAgAEgV8AoEBAxoQIEZvciBvbmVvZiB0ZXN0CgoMCgUEAAgAARIDfAgTCgsKBAQAAiwSA30EHgoMCgUEAAIsBRIDfQQKCgwKBQQAAiwBEgN9CxcKDAoFBAACLAMSA30aHQoLCgQEAAItEgN+BC0KDAoFBAACLQYSA34EEQoMCgUEAAItARIDfhImCgwKBQQAAi0DEgN+KSwKCwoEBAACLhIDfwQeCgwKBQQAAi4FEgN/BAoKDAoFBAACLgESA38LFwoMCgUEAAIuAxIDfxodCgwKBAQAAi8SBIABBBwKDQoFBAACLwUSBIABBAkKDQoFBAACLwESBIABChUKDQoFBAACLwMSBIABGBsKQQoCBAESBoUBAIkBARozIFRoaXMgcHJvdG8gaW5jbHVkZXMgYSByZWN1cnNpdmVseSBuZXN0ZWQgbWVzc2FnZS4KCgsKAwQBARIEhQEIGgoMCgQEAQIAEgSGAQIfCg0KBQQBAgAGEgSGAQIUCg0KBQQBAgABEgSGARUaCg0KBQQBAgADEgSGAR0eCgwKBAQBAgESBIcBAhsKDQoFBAECAQYSBIcBAg4KDQoFBAECAQESBIcBDxYKDQoFBAECAQMSBIcBGRoKDAoEBAECAhIEiAECMQoNCgUEAQICBBIEiAECCgoNCgUEAQICBhIEiAELHQoNCgUEAQICARIEiAEeLAoNCgUEAQICAxIEiAEvMAoMCgIEAhIGiwEAjQEBCgsKAwQCARIEiwEIHAoMCgQEAgIAEgSMAQIxCg0KBQQCAgAFEgSMAQIHCg0KBQQCAgABEgSMAQgYCg0KBQQCAgADEgSMARscCg0KBQQCAgAIEgSMAR0wCg4KBgQCAgAIAxIEjAEeLwpbCgIEAxIGkQEAkwEBGk0gRGVmaW5lIHRoZXNlIGFmdGVyIFRlc3RBbGxUeXBlcyB0byBtYWtlIHN1cmUgdGhlIGNvbXBpbGVyIGNhbiBoYW5kbGUKIHRoYXQuCgoLCgMEAwESBJEBCBYKDAoEBAMCABIEkgECDgoNCgUEAwIABRIEkgECBwoNCgUEAwIAARIEkgEICQoNCgUEAwIAAxIEkgEMDQoMCgIFABIGlQEAmgEBCgsKAwUAARIElQEFEAoMCgQFAAIAEgSWAQIaCg0KBQUAAgABEgSWAQIVCg0KBQUAAgACEgSWARgZCgwKBAUAAgESBJcBAhIKDQoFBQACAQESBJcBAg0KDQoFBQACAQISBJcBEBEKDAoEBQACAhIEmAECEgoNCgUFAAICARIEmAECDQoNCgUFAAICAhIEmAEQEQoMCgQFAAIDEgSZAQISCg0KBQUAAgMBEgSZAQINCg0KBQUAAgMCEgSZARARCgwKAgQEEgacAQCfAQEKCwoDBAQBEgScAQgaCgsKAwQECRIEnQECGgoMCgQEBAkAEgSdAQsMCg0KBQQECQABEgSdAQsMCg0KBQQECQACEgSdAQsMCgwKBAQECQESBJ0BDhAKDQoFBAQJAQESBJ0BDhAKDQoFBAQJAQISBJ0BDhAKDAoEBAQJAhIEnQESGQoNCgUEBAkCARIEnQESEwoNCgUEBAkCAhIEnQEXGQoLCgMEBAoSBJ4BAhgKDAoEBAQKABIEngELEAoMCgQEBAoBEgSeARIXCk0KAgQFEgaiAQCkAQEaPyBUZXN0IHRoYXQgd2UgY2FuIHVzZSBOZXN0ZWRNZXNzYWdlIGZyb20gb3V0c2lkZSBUZXN0QWxsVHlwZXMuCgoLCgMEBQESBKIBCBkKDAoEBAUCABIEowECMAoNCgUEBQIABhIEowECHAoNCgUEBQIAARIEowEdKwoNCgUEBQIAAxIEowEuLwpICgIEBhIGpwEArAEBGjogVGVzdCB0aGF0IHJlYWxseSBsYXJnZSB0YWcgbnVtYmVycyBkb24ndCBicmVhayBhbnl0aGluZy4KCgsKAwQGARIEpwEIIAp9CgQEBgIAEgSqAQIOGm8gVGhlIGxhcmdlc3QgcG9zc2libGUgdGFnIG51bWJlciBpcyAyXjI4IC0gMSwgc2luY2UgdGhlIHdpcmUgZm9ybWF0IHVzZXMKIHRocmVlIGJpdHMgdG8gY29tbXVuaWNhdGUgd2lyZSB0eXBlLgoKDQoFBAYCAAUSBKoBAgcKDQoFBAYCAAESBKoBCAkKDQoFBAYCAAMSBKoBDA0KDAoEBAYCARIEqwECFwoNCgUEBgIBBRIEqwECBwoNCgUEBgIBARIEqwEICgoNCgUEBgIBAxIEqwENFgoMCgIEBxIGrgEAsQEBCgsKAwQHARIErgEIHAoMCgQEBwIAEgSvAQIdCg0KBQQHAgAGEgSvAQIWCg0KBQQHAgABEgSvARcYCg0KBQQHAgADEgSvARscCgwKBAQHAgESBLABAg4KDQoFBAcCAQUSBLABAgcKDQoFBAcCAQESBLABCAkKDQoFBAcCAQMSBLABDA0KMQoCBAgSBrQBALYBARojIFRlc3QgdGhhdCBtdXR1YWwgcmVjdXJzaW9uIHdvcmtzLgoKCwoDBAgBEgS0AQgcCgwKBAQIAgASBLUBAh4KDQoFBAgCAAYSBLUBAhYKDQoFBAgCAAESBLUBFxkKDQoFBAgCAAMSBLUBHB0KDAoCBAkSBrgBALsBAQoLCgMECQESBLgBCBwKDAoEBAkCABIEuQECHQoNCgUECQIABhIEuQECFgoNCgUECQIAARIEuQEXGAoNCgUECQIAAxIEuQEbHAoMCgQECQIBEgS6AQIbCg0KBQQJAgEFEgS6AQIHCg0KBQQJAgEBEgS6AQgWCg0KBQQJAgEDEgS6ARkaCgwKAgQKEga9AQC/AQEKCwoDBAoBEgS9AQgaCgwKBAQKAgASBL4BAiEKDQoFBAoCAAYSBL4BAhYKDQoFBAoCAAESBL4BFxwKDQoFBAoCAAMSBL4BHyAKSwoCBQESBsIBAMwBARo9IFRlc3QgYW4gZW51bSB0aGF0IGhhcyBtdWx0aXBsZSB2YWx1ZXMgd2l0aCB0aGUgc2FtZSBudW1iZXIuCgoLCgMFAQESBMIBBRkKCwoDBQEDEgTDAQIcCgwKBAUBAwISBMMBAhwKDAoEBQECABIExQECKwoNCgUFAQIAARIExQECJgoNCgUFAQIAAhIExQEpKgoMCgQFAQIBEgTHAQILCg0KBQUBAgEBEgTHAQIGCg0KBQUBAgECEgTHAQkKCgwKBAUBAgISBMgBAgsKDQoFBQECAgESBMgBAgYKDQoFBQECAgISBMgBCQoKDAoEBQECAxIEyQECCgoNCgUFAQIDARIEyQECBQoNCgUFAQIDAhIEyQEICQoMCgQFAQIEEgTKAQILCg0KBQUBAgQBEgTKAQIGCg0KBQUBAgQCEgTKAQkKCgwKBAUBAgUSBMsBAgsKDQoFBQECBQESBMsBAgYKDQoFBQECBQISBMsBCQoKOgoCBQISBs8BANkBARosIFRlc3QgYW4gZW51bSB3aXRoIGxhcmdlLCB1bm9yZGVyZWQgdmFsdWVzLgoKCwoDBQIBEgTPAQUTCgwKBAUCAgASBNABAiMKDQoFBQICAAESBNABAh4KDQoFBQICAAISBNABISIKDAoEBQICARIE0QECEQoNCgUFAgIBARIE0QECCgoNCgUFAgIBAhIE0QENEAoMCgQFAgICEgTSAQITCg0KBQUCAgIBEgTSAQIKCg0KBQUCAgICEgTSAQ0SCgwKBAUCAgMSBNMBAhYKDQoFBQICAwESBNMBAgoKDQoFBQICAwISBNMBDRUKDAoEBQICBBIE1AECEQoNCgUFAgIEARIE1AECCgoNCgUFAgIEAhIE1AENEAoMCgQFAgIFEgTVAQIUCg0KBQUCAgUBEgTVAQIKCg0KBQUCAgUCEgTVAQ0TClEKBAUCAgYSBNgBAg8aQyBJbiBwcm90bzMsIHZhbHVlIDAgbXVzdCBiZSB0aGUgZmlyc3Qgb25lIHNwZWNpZmllZAogU1BBUlNFX0YgPSAwOwoKDQoFBQICBgESBNgBAgoKDQoFBQICBgISBNgBDQ4KaAoCBAsSBt0BAOcBARpaIFRlc3QgbWVzc2FnZSB3aXRoIENhbWVsQ2FzZSBmaWVsZCBuYW1lcy4gIFRoaXMgdmlvbGF0ZXMgUHJvdG9jb2wgQnVmZmVyCiBzdGFuZGFyZCBzdHlsZS4KCgsKAwQLARIE3QEIHwoMCgQECwIAEgTeAQIbCg0KBQQLAgAFEgTeAQIHCg0KBQQLAgABEgTeAQgWCg0KBQQLAgADEgTeARkaCgwKBAQLAgESBN8BAhkKDQoFBAsCAQUSBN8BAggKDQoFBAsCAQESBN8BCRQKDQoFBAsCAQMSBN8BFxgKDAoEBAsCAhIE4AECHAoNCgUECwICBhIE4AECDQoNCgUECwICARIE4AEOFwoNCgUECwICAxIE4AEaGwoMCgQECwIDEgThAQIiCg0KBQQLAgMGEgThAQIQCg0KBQQLAgMBEgThAREdCg0KBQQLAgMDEgThASAhCgwKBAQLAgQSBOMBAiwKDQoFBAsCBAQSBOMBAgoKDQoFBAsCBAUSBOMBCxAKDQoFBAsCBAESBOMBEScKDQoFBAsCBAMSBOMBKisKDAoEBAsCBRIE5AECKgoNCgUECwIFBBIE5AECCgoNCgUECwIFBRIE5AELEQoNCgUECwIFARIE5AESJQoNCgUECwIFAxIE5AEoKQoMCgQECwIGEgTlAQItCg0KBQQLAgYEEgTlAQIKCg0KBQQLAgYGEgTlAQsWCg0KBQQLAgYBEgTlARcoCg0KBQQLAgYDEgTlASssCgwKBAQLAgcSBOYBAjQKDQoFBAsCBwQSBOYBAgoKDQoFBAsCBwYSBOYBCxkKDQoFBAsCBwESBOYBGi4KDQoFBAsCBwMSBOYBMTMKiwEKAgQMEgbrAQD4AQEafSBXZSBsaXN0IGZpZWxkcyBvdXQgb2Ygb3JkZXIsIHRvIGVuc3VyZSB0aGF0IHdlJ3JlIHVzaW5nIGZpZWxkIG51bWJlciBhbmQgbm90CiBmaWVsZCBpbmRleCB0byBkZXRlcm1pbmUgc2VyaWFsaXphdGlvbiBvcmRlci4KCgsKAwQMARIE6wEIGgoMCgQEDAIAEgTsAQIYCg0KBQQMAgAFEgTsAQIICg0KBQQMAgABEgTsAQkSCg0KBQQMAgADEgTsARUXCgwKBAQMAgESBO0BAhMKDQoFBAwCAQUSBO0BAgcKDQoFBAwCAQESBO0BCA4KDQoFBAwCAQMSBO0BERIKDAoEBAwCAhIE7gECFwoNCgUEDAICBRIE7gECBwoNCgUEDAICARIE7gEIEAoNCgUEDAICAxIE7gETFgoOCgQEDAMAEgbvAQL1AQMKDQoFBAwDAAESBO8BChcKDgoGBAwDAAIAEgTwAQQRCg8KBwQMAwACAAUSBPABBAkKDwoHBAwDAAIAARIE8AEKDAoPCgcEDAMAAgADEgTwAQ8QCuQBCgYEDAMAAgESBPQBBBEa0wEgVGhlIGZpZWxkIG5hbWUgImIiIGZhaWxzIHRvIGNvbXBpbGUgaW4gcHJvdG8xIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGgKIGEgbG9jYWwgdmFyaWFibGUgbmFtZWQgImIiIGluIG9uZSBvZiB0aGUgZ2VuZXJhdGVkIG1ldGhvZHMuICBEb2guCiBUaGlzIGZpbGUgbmVlZHMgdG8gY29tcGlsZSBpbiBwcm90bzEgdG8gdGVzdCBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eS4KCg8KBwQMAwACAQUSBPQBBAkKDwoHBAwDAAIBARIE9AEKDAoPCgcEDAMAAgEDEgT0AQ8QCgwKBAQMAgMSBPcBAiwKDQoFBAwCAwYSBPcBAg8KDQoFBAwCAwESBPcBECUKDQoFBAwCAwMSBPcBKCsKDAoCBA0SBvoBAPwBAQoLCgMEDQESBPoBCBkKDAoEBA0CABIE+wECIQoNCgUEDQIABhIE+wECEAoNCgUEDQIAARIE+wERHAoNCgUEDQIAAxIE+wEfIApICgIEDhIG/wEAgQIBGjogVGVzdCBTdHJpbmcgYW5kIEJ5dGVzOiBzdHJpbmcgaXMgZm9yIHZhbGlkIFVURi04IHN0cmluZ3MKCgsKAwQOARIE/wEIEQoMCgQEDgIAEgSAAgISCg0KBQQOAgAFEgSAAgIICg0KBQQOAgABEgSAAgkNCg0KBQQOAgADEgSAAhARCgwKAgQPEgaDAgCFAgEKCwoDBA8BEgSDAggSCgwKBAQPAgASBIQCAhsKDQoFBA8CAAQSBIQCAgoKDQoFBA8CAAUSBIQCCxEKDQoFBA8CAAESBIQCEhYKDQoFBA8CAAMSBIQCGRoKDAoCBBASBocCAIkCAQoLCgMEEAESBIcCCBAKDAoEBBACABIEiAICEQoNCgUEEAIABRIEiAICBwoNCgUEEAIAARIEiAIIDAoNCgUEEAIAAxIEiAIPEAoMCgIEERIGiwIAjQIBCgsKAwQRARIEiwIIEQoMCgQEEQIAEgSMAgIRCg0KBQQRAgAFEgSMAgIHCg0KBQQRAgABEgSMAggMCg0KBQQRAgADEgSMAg8QCk4KAgQSEgaQAgCSAgEaQCBUZXN0IGludDMyLCB1aW50MzIsIGludDY0LCB1aW50NjQsIGFuZCBib29sIGFyZSBhbGwgY29tcGF0aWJsZQoKCwoDBBIBEgSQAggUCgwKBAQSAgASBJECAhEKDQoFBBICAAUSBJECAgcKDQoFBBICAAESBJECCAwKDQoFBBICAAMSBJECDxAKDAoCBBMSBpQCAJYCAQoLCgMEEwESBJQCCBUKDAoEBBMCABIElQICEgoNCgUEEwIABRIElQICCAoNCgUEEwIAARIElQIJDQoNCgUEEwIAAxIElQIQEQoMCgIEFBIGmAIAmgIBCgsKAwQUARIEmAIIFAoMCgQEFAIAEgSZAgIRCg0KBQQUAgAFEgSZAgIHCg0KBQQUAgABEgSZAggMCg0KBQQUAgADEgSZAg8QCgwKAgQVEgacAgCeAgEKCwoDBBUBEgScAggVCgwKBAQVAgASBJ0CAhIKDQoFBBUCAAUSBJ0CAggKDQoFBBUCAAESBJ0CCQ0KDQoFBBUCAAMSBJ0CEBEKDAoCBBYSBqACAKICAQoLCgMEFgESBKACCBMKDAoEBBYCABIEoQICEAoNCgUEFgIABRIEoQICBgoNCgUEFgIAARIEoQIHCwoNCgUEFgIAAxIEoQIODwocCgIEFxIGpQIAqwIBGg4gVGVzdCBvbmVvZnMuCgoLCgMEFwESBKUCCBEKDgoEBBcIABIGpgICqgIDCg0KBQQXCAABEgSmAggLCgwKBAQXAgASBKcCBBYKDQoFBBcCAAUSBKcCBAkKDQoFBBcCAAESBKcCChEKDQoFBBcCAAMSBKcCFBUKDAoEBBcCARIEqAIEGgoNCgUEFwIBBRIEqAIECgoNCgUEFwIBARIEqAILFQoNCgUEFwIBAxIEqAIYGQoMCgQEFwICEgSpAgQhCg0KBQQXAgIGEgSpAgQQCg0KBQQXAgIBEgSpAhEcCg0KBQQXAgIDEgSpAh8gCi8KAgQYEgavAgC+AgEyISBUZXN0IG1lc3NhZ2VzIGZvciBwYWNrZWQgZmllbGRzCgoLCgMEGAESBK8CCBcKDAoEBBgCABIEsAICMwoNCgUEGAIABBIEsAICCgoNCgUEGAIABRIEsAILEAoNCgUEGAIAARIEsAIRHQoNCgUEGAIAAxIEsAIgIgoNCgUEGAIACBIEsAIjMgoOCgYEGAIACAISBLACJDEKDAoEBBgCARIEsQICMwoNCgUEGAIBBBIEsQICCgoNCgUEGAIBBRIEsQILEAoNCgUEGAIBARIEsQIRHQoNCgUEGAIBAxIEsQIgIgoNCgUEGAIBCBIEsQIjMgoOCgYEGAIBCAISBLECJDEKDAoEBBgCAhIEsgICNQoNCgUEGAICBBIEsgICCgoNCgUEGAICBRIEsgILEQoNCgUEGAICARIEsgISHwoNCgUEGAICAxIEsgIiJAoNCgUEGAICCBIEsgIlNAoOCgYEGAICCAISBLICJjMKDAoEBBgCAxIEswICNQoNCgUEGAIDBBIEswICCgoNCgUEGAIDBRIEswILEQoNCgUEGAIDARIEswISHwoNCgUEGAIDAxIEswIiJAoNCgUEGAIDCBIEswIlNAoOCgYEGAIDCAISBLMCJjMKDAoEBBgCBBIEtAICNQoNCgUEGAIEBBIEtAICCgoNCgUEGAIEBRIEtAILEQoNCgUEGAIEARIEtAISHwoNCgUEGAIEAxIEtAIiJAoNCgUEGAIECBIEtAIlNAoOCgYEGAIECAISBLQCJjMKDAoEBBgCBRIEtQICNQoNCgUEGAIFBBIEtQICCgoNCgUEGAIFBRIEtQILEQoNCgUEGAIFARIEtQISHwoNCgUEGAIFAxIEtQIiJAoNCgUEGAIFCBIEtQIlNAoOCgYEGAIFCAISBLUCJjMKDAoEBBgCBhIEtgICNwoNCgUEGAIGBBIEtgICCgoNCgUEGAIGBRIEtgILEgoNCgUEGAIGARIEtgITIQoNCgUEGAIGAxIEtgIkJgoNCgUEGAIGCBIEtgInNgoOCgYEGAIGCAISBLYCKDUKDAoEBBgCBxIEtwICNwoNCgUEGAIHBBIEtwICCgoNCgUEGAIHBRIEtwILEgoNCgUEGAIHARIEtwITIQoNCgUEGAIHAxIEtwIkJgoNCgUEGAIHCBIEtwInNgoOCgYEGAIHCAISBLcCKDUKDAoEBBgCCBIEuAICOQoNCgUEGAIIBBIEuAICCgoNCgUEGAIIBRIEuAILEwoNCgUEGAIIARIEuAIUIwoNCgUEGAIIAxIEuAImKAoNCgUEGAIICBIEuAIpOAoOCgYEGAIICAISBLgCKjcKDAoEBBgCCRIEuQICOQoNCgUEGAIJBBIEuQICCgoNCgUEGAIJBRIEuQILEwoNCgUEGAIJARIEuQIUIwoNCgUEGAIJAxIEuQImKAoNCgUEGAIJCBIEuQIpOAoOCgYEGAIJCAISBLkCKjcKDAoEBBgCChIEugICNAoNCgUEGAIKBBIEugICCgoNCgUEGAIKBRIEugILEAoNCgUEGAIKARIEugIRHQoNCgUEGAIKAxIEugIgIwoNCgUEGAIKCBIEugIkMwoOCgYEGAIKCAISBLoCJTIKDAoEBBgCCxIEuwICNgoNCgUEGAILBBIEuwICCgoNCgUEGAILBRIEuwILEQoNCgUEGAILARIEuwISHwoNCgUEGAILAxIEuwIiJQoNCgUEGAILCBIEuwImNQoOCgYEGAILCAISBLsCJzQKDAoEBBgCDBIEvAICMgoNCgUEGAIMBBIEvAICCgoNCgUEGAIMBRIEvAILDwoNCgUEGAIMARIEvAIQGwoNCgUEGAIMAxIEvAIeIQoNCgUEGAIMCBIEvAIiMQoOCgYEGAIMCAISBLwCIzAKDAoEBBgCDRIEvQICOQoNCgUEGAINBBIEvQICCgoNCgUEGAINBhIEvQILFgoNCgUEGAINARIEvQIXIgoNCgUEGAINAxIEvQIlKAoNCgUEGAINCBIEvQIpOAoOCgYEGAINCAISBL0CKjcKjQEKAgQZEgbCAgDRAgEafyBBIG1lc3NhZ2Ugd2l0aCB0aGUgc2FtZSBmaWVsZHMgYXMgVGVzdFBhY2tlZFR5cGVzLCBidXQgd2l0aG91dCBwYWNraW5nLiBVc2VkCiB0byB0ZXN0IHBhY2tlZCA8LT4gdW5wYWNrZWQgd2lyZSBjb21wYXRpYmlsaXR5LgoKCwoDBBkBEgTCAggZCgwKBAQZAgASBMMCAjYKDQoFBBkCAAQSBMMCAgoKDQoFBBkCAAUSBMMCCxAKDQoFBBkCAAESBMMCER8KDQoFBBkCAAMSBMMCIiQKDQoFBBkCAAgSBMMCJTUKDgoGBBkCAAgCEgTDAiY0CgwKBAQZAgESBMQCAjYKDQoFBBkCAQQSBMQCAgoKDQoFBBkCAQUSBMQCCxAKDQoFBBkCAQESBMQCER8KDQoFBBkCAQMSBMQCIiQKDQoFBBkCAQgSBMQCJTUKDgoGBBkCAQgCEgTEAiY0CgwKBAQZAgISBMUCAjgKDQoFBBkCAgQSBMUCAgoKDQoFBBkCAgUSBMUCCxEKDQoFBBkCAgESBMUCEiEKDQoFBBkCAgMSBMUCJCYKDQoFBBkCAggSBMUCJzcKDgoGBBkCAggCEgTFAig2CgwKBAQZAgMSBMYCAjgKDQoFBBkCAwQSBMYCAgoKDQoFBBkCAwUSBMYCCxEKDQoFBBkCAwESBMYCEiEKDQoFBBkCAwMSBMYCJCYKDQoFBBkCAwgSBMYCJzcKDgoGBBkCAwgCEgTGAig2CgwKBAQZAgQSBMcCAjgKDQoFBBkCBAQSBMcCAgoKDQoFBBkCBAUSBMcCCxEKDQoFBBkCBAESBMcCEiEKDQoFBBkCBAMSBMcCJCYKDQoFBBkCBAgSBMcCJzcKDgoGBBkCBAgCEgTHAig2CgwKBAQZAgUSBMgCAjgKDQoFBBkCBQQSBMgCAgoKDQoFBBkCBQUSBMgCCxEKDQoFBBkCBQESBMgCEiEKDQoFBBkCBQMSBMgCJCYKDQoFBBkCBQgSBMgCJzcKDgoGBBkCBQgCEgTIAig2CgwKBAQZAgYSBMkCAjoKDQoFBBkCBgQSBMkCAgoKDQoFBBkCBgUSBMkCCxIKDQoFBBkCBgESBMkCEyMKDQoFBBkCBgMSBMkCJigKDQoFBBkCBggSBMkCKTkKDgoGBBkCBggCEgTJAio4CgwKBAQZAgcSBMoCAjoKDQoFBBkCBwQSBMoCAgoKDQoFBBkCBwUSBMoCCxIKDQoFBBkCBwESBMoCEyMKDQoFBBkCBwMSBMoCJigKDQoFBBkCBwgSBMoCKTkKDgoGBBkCBwgCEgTKAio4CgwKBAQZAggSBMsCAjwKDQoFBBkCCAQSBMsCAgoKDQoFBBkCCAUSBMsCCxMKDQoFBBkCCAESBMsCFCUKDQoFBBkCCAMSBMsCKCoKDQoFBBkCCAgSBMsCKzsKDgoGBBkCCAgCEgTLAiw6CgwKBAQZAgkSBMwCAjwKDQoFBBkCCQQSBMwCAgoKDQoFBBkCCQUSBMwCCxMKDQoFBBkCCQESBMwCFCUKDQoFBBkCCQMSBMwCKCoKDQoFBBkCCQgSBMwCKzsKDgoGBBkCCQgCEgTMAiw6CgwKBAQZAgoSBM0CAjcKDQoFBBkCCgQSBM0CAgoKDQoF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ZGV0YWNoZWQgY29tbWVudCAyCgoLCgMEIwESBIEDCBYKMAoEBCMDABIGgwMChgMDGiAgTGVhZGluZyBuZXN0ZWQgbWVzc2FnZSBjb21tZW50CgoNCgUEIwMAARIEgwMKHgo2CgYEIwMAAgASBIUDBBsaJiBMZWFkaW5nIG5lc3RlZCBtZXNzYWdlIGZpZWxkIGNvbW1lbnQKCg8KBwQjAwACAAUSBIUDBAoKDwoHBCMDAAIAARIEhQMLFgoPCgcEIwMAAgADEgSFAxkaCi0KBAQjBAASBokDAowDAxodIExlYWRpbmcgbmVzdGVkIGVudW0gY29tbWVudAoKDQoFBCMEAAESBIkDBxgKJAoGBCMEAAIAEgSLAwQTGhQgWmVybyB2YWx1ZSBjb21tZW50CgoPCgcEIwQAAgABEgSLAwQOCg8KBwQjBAACAAISBIsDERIKPwoEBCMCABIEjwMCEhoXIExlYWRpbmcgZmllbGQgY29tbWVudAoiGCBUcmFpbGluZyBmaWVsZCBjb21tZW50CgoNCgUEIwIABRIEjwMCCAoNCgUEIwIAARIEjwMJDQoNCgUEIwIAAxIEjwMQEQokCgIFAxIGkwMAlgMBGhYgTGVhZGluZyBlbnVtIGNvbW1lbnQKCgsKAwUDARIEkwMFEAoiCgQFAwIAEgSVAwIRGhQgWmVybyB2YWx1ZSBjb21tZW50CgoNCgUFAwIAARIElQMCDAoNCgUFAwIAAhIElQMPEGIGcHJvdG8zCuFYCidjc2hhcnAvcHJvdG9zL21hcF91bml0dGVzdF9wcm90bzMucHJvdG8SEnByb3RvYnVmX3VuaXR0ZXN0MxojY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9wcm90bzMucHJvdG8imRYKB1Rlc3RNYXASVgoPbWFwX2ludDMyX2ludDMyGAEgAygLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJJbnQzMkVudHJ5Ug1tYXBJbnQzMkludDMyElYKD21hcF9pbnQ2NF9pbnQ2NBgCIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJcChFtYXBfdWludDMyX3VpbnQzMhgDIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzISXAoRbWFwX3VpbnQ2NF91aW50NjQYBCADKAsyMC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBVaW50NjRVaW50NjRFbnRyeVIPbWFwVWludDY0VWludDY0ElwKEW1hcF9zaW50MzJfc2ludDMyGAUgAygLMjAucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJcChFtYXBfc2ludDY0X3NpbnQ2NBgGIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSYgoTbWFwX2ZpeGVkMzJfZml4ZWQzMhgHIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEZpeGVkMzJGaXhlZDMyRW50cnlSEW1hcEZpeGVkMzJGaXhlZDMyEmIKE21hcF9maXhlZDY0X2ZpeGVkNjQYCCADKAsyMi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJoChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYCSADKAsyNC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISaAoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GAogAygLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5UhNtYXBTZml4ZWQ2NFNmaXhlZDY0ElYKD21hcF9pbnQzMl9mbG9hdBgLIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJZChBtYXBfaW50MzJfZG91YmxlGAwgAygLMi8ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSUAoNbWFwX2Jvb2xfYm9vbBgNIAMoCzIsLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEJvb2xCb29sRW50cnlSC21hcEJvb2xCb29sElwKEW1hcF9zdHJpbmdfc3RyaW5nGA4gAygLMjAucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU3RyaW5nU3RyaW5nRW50cnlSD21hcFN0cmluZ1N0cmluZxJWCg9tYXBfaW50MzJfYnl0ZXMYDyADKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkJ5dGVzRW50cnlSDW1hcEludDMyQnl0ZXMSUwoObWFwX2ludDMyX2VudW0YECADKAsyLS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkVudW1FbnRyeVIMbWFwSW50MzJFbnVtEnIKGW1hcF9pbnQzMl9mb3JlaWduX21lc3NhZ2UYESADKAsyNy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnlSFm1hcEludDMyRm9yZWlnbk1lc3NhZ2UaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaQgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkJ5dGVzRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ARpcChFNYXBJbnQzMkVudW1FbnRyeRIQCgNrZXkYASABKAVSA2tleRIxCgV2YWx1ZRgCIAEoDjIbLnByb3RvYnVmX3VuaXR0ZXN0My5NYXBFbnVtUgV2YWx1ZToCOAEabQobTWFwSW50MzJGb3JlaWduTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjgKBXZhbHVlGAIgASgLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUgV2YWx1ZToCOAEiSwoRVGVzdE1hcFN1Ym1lc3NhZ2USNgoIdGVzdF9tYXAYASABKAsyGy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcFIHdGVzdE1hcCLbAQoOVGVzdE1lc3NhZ2VNYXASYwoRbWFwX2ludDMyX21lc3NhZ2UYASADKAsyNy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1lc3NhZ2VNYXAuTWFwSW50MzJNZXNzYWdlRW50cnlSD21hcEludDMyTWVzc2FnZRpkChRNYXBJbnQzMk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAVSA2tleRI2CgV2YWx1ZRgCIAEoCzIgLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXNSBXZhbHVlOgI4ASKJAgoPVGVzdFNhbWVUeXBlTWFwEkEKBG1hcDEYASADKAsyLS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdFNhbWVUeXBlTWFwLk1hcDFFbnRyeVIEbWFwMRJBCgRtYXAyGAIgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RTYW1lVHlwZU1hcC5NYXAyRW50cnlSBG1hcDIaNwoJTWFwMUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaNwoJTWFwMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEirRQKDFRlc3RBcmVuYU1hcBJbCg9tYXBfaW50MzJfaW50MzIYASADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJbCg9tYXBfaW50NjRfaW50NjQYAiADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJhChFtYXBfdWludDMyX3VpbnQzMhgDIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwVWludDMyVWludDMyRW50cnlSD21hcFVpbnQzMlVpbnQzMhJhChFtYXBfdWludDY0X3VpbnQ2NBgEIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJhChFtYXBfc2ludDMyX3NpbnQzMhgFIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJhChFtYXBfc2ludDY0X3NpbnQ2NBgGIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwU2ludDY0U2ludDY0RW50cnlSD21hcFNpbnQ2NFNpbnQ2NBJnChNtYXBfZml4ZWQzMl9maXhlZDMyGAcgAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJnChNtYXBfZml4ZWQ2NF9maXhlZDY0GAggAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJtChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYCSADKAsyOS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeVITbWFwU2ZpeGVkMzJTZml4ZWQzMhJtChVtYXBfc2ZpeGVkNjRfc2ZpeGVkNjQYCiADKAsyOS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJbCg9tYXBfaW50MzJfZmxvYXQYCyADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJeChBtYXBfaW50MzJfZG91YmxlGAwgAygLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkRvdWJsZUVudHJ5Ug5tYXBJbnQzMkRvdWJsZRJVCg1tYXBfYm9vbF9ib29sGA0gAygLMjEucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJYCg5tYXBfaW50MzJfZW51bRgOIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwSW50MzJFbnVtRW50cnlSDG1hcEludDMyRW51bRJ3ChltYXBfaW50MzJfZm9yZWlnbl9tZXNzYWdlGA8gAygLMjwucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnlSFm1hcEludDMyRm9yZWlnbk1lc3NhZ2UaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaXAoRTWFwSW50MzJFbnVtRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKA4yGy5wcm90b2J1Zl91bml0dGVzdDMuTWFwRW51bVIFdmFsdWU6AjgBGm0KG01hcEludDMyRm9yZWlnbk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAVSA2tleRI4CgV2YWx1ZRgCIAEoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIFdmFsdWU6AjgBIvgBCh9NZXNzYWdlQ29udGFpbmluZ0VudW1DYWxsZWRUeXBlElEKBHR5cGUYASADKAsyPS5wcm90b2J1Zl91bml0dGVzdDMuTWVzc2FnZUNvbnRhaW5pbmdFbnVtQ2FsbGVkVHlwZS5UeXBlRW50cnlSBHR5cGUabAoJVHlwZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EkkKBXZhbHVlGAIgASgLMjMucHJvdG9idWZfdW5pdHRlc3QzLk1lc3NhZ2VDb250YWluaW5nRW51bUNhbGxlZFR5cGVSBXZhbHVlOgI4ASIUCgRUeXBlEgwKCFRZUEVfRk9PEAAisQEKH01lc3NhZ2VDb250YWluaW5nTWFwQ2FsbGVkRW50cnkSVAoFZW50cnkYASADKAsyPi5wcm90b2J1Zl91bml0dGVzdDMuTWVzc2FnZUNvbnRhaW5pbmdNYXBDYWxsZWRFbnRyeS5FbnRyeUVudHJ5UgVlbnRyeRo4CgpFbnRyeUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEqPwoHTWFwRW51bRIQCgxNQVBfRU5VTV9GT08QABIQCgxNQVBfRU5VTV9CQVIQARIQCgxNQVBfRU5VTV9CQVoQAkIdqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK4iQKBhIEJABzAQqbDwoBDBIDJAASGswCIFRoaXMgZmlsZSBpcyBtb3N0bHkgZXF1aXZhbGVudCB0byBtYXBfdW5pdHRlc3QucHJvdG8sIGJ1dCBpbXBvcnRzCiB1bml0dGVzdF9wcm90bzMucHJvdG8gaW5zdGVhZCBvZiB1bml0dGVzdC5wcm90bywgc28gdGhhdCBpdCBvbmx5CiB1c2VzIHByb3RvMyBtZXNzYWdlcy4gVGhpcyBtYWtlcyBpdCBzdWl0YWJsZSBmb3IgdGVzdGluZwogaW1wbGVtZW50YXRpb25zIHdoaWNoIG9ubHkgc3VwcG9ydCBwcm90bzMuCiBUaGUgVGVzdFJlcXVpcmVkTWVzc2FnZU1hcCBtZXNzYWdlIGhhcyBiZWVuIHJlbW92ZWQgYXMgdGhlcmUgYXJlIG5vCiByZXF1aXJlZCBmaWVsZHMgaW4gcHJvdG8zLgoywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS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DgoHBAUEAAIAARIDawQMCg4KBwQFBAACAAISA2sPEAoLCgQEBQIAEgNtAjcKDAoFBAUCAAYSA20CLQoMCgUEBQIAARIDbS4yCgwKBQQFAgADEgNtNTYKSgoCBAYSBHEAcwEaPiBQcmV2aW91c2x5LCBtZXNzYWdlIGNhbm5vdCBjb250YWluIG1hcCBmaWVsZCBjYWxsZWQgImVudHJ5Ii4KCgoKAwQGARIDcQgnCgsKBAQGAgASA3ICHgoMCgUEBgIABhIDcgITCgwKBQQGAgABEgNyFBkKDAoFBAYCAAMSA3IcHWIGcHJvdG8zCv4iChxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYimAEKBlN0cnVjdBI7CgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5UgZmaWVsZHMaUQoLRmllbGRzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSLAoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSBXZhbHVlOgI4ASKyAgoFVmFsdWUSOwoKbnVsbF92YWx1ZRgBIAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVIAFIJbnVsbFZhbHVlEiMKDG51bWJlcl92YWx1ZRgCIAEoAUgAUgtudW1iZXJWYWx1ZRIjCgxzdHJpbmdfdmFsdWUYAyABKAlIAFILc3RyaW5nVmFsdWUSHwoKYm9vbF92YWx1ZRgEIAEoCEgAUglib29sVmFsdWUSPAoMc3RydWN0X3ZhbHVlGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAUgtzdHJ1Y3RWYWx1ZRI7CgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAUglsaXN0VmFsdWVCBgoEa2luZCI7CglMaXN0VmFsdWUSLgoGdmFsdWVzGAEgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgZ2YWx1ZXMqGwoJTnVsbFZhbHVlEg4KCk5VTExfVkFMVUUQAEJ/ChNjb20uZ29vZ2xlLnByb3RvYnVmQgtTdHJ1Y3RQcm90b1ABWi9nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9zdHJ1Y3RwYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0qZHQoGEgQeAF4BCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAfCgkKAggfEgMiAB8KCAoBCBIDIwBGCgkKAggLEgMjAEYKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQAsCgkKAggIEgMlACwKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEKCAoBCBIDKAA7CgkKAgglEgMoADsKswMKAgQAEgQyADUBGqYDIGBTdHJ1Y3RgIHJlcHJlc2VudHMgYSBzdHJ1Y3R1cmVkIGRhdGEgdmFsdWUsIGNvbnNpc3Rpbmcgb2YgZmllbGRzCiB3aGljaCBtYXAgdG8gZHluYW1pY2FsbHkgdHlwZWQgdmFsdWVzLiBJbiBzb21lIGxhbmd1YWdlcywgYFN0cnVjdGAKIG1pZ2h0IGJlIHN1cHBvcnRlZCBieSBhIG5hdGl2ZSByZXByZXNlbnRhdGlvbi4gRm9yIGV4YW1wbGUsIGluCiBzY3JpcHRpbmcgbGFuZ3VhZ2VzIGxpa2UgSlMgYSBzdHJ1Y3QgaXMgcmVwcmVzZW50ZWQgYXMgYW4KIG9iamVjdC4gVGhlIGRldGFpbHMgb2YgdGhhdCByZXByZXNlbnRhdGlvbiBhcmUgZGVzY3JpYmVkIHRvZ2V0aGVyCiB3aXRoIHRoZSBwcm90byBzdXBwb3J0IGZvciB0aGUgbGFuZ3VhZ2UuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBTdHJ1Y3RgIGlzIEpTT04gb2JqZWN0LgoKCgoDBAABEgMyCA4KOQoEBAACABIDNAIgGiwgVW5vcmRlcmVkIG1hcCBvZiBkeW5hbWljYWxseSB0eXBlZCB2YWx1ZXMuCgoMCgUEAAIABhIDNAIUCgwKBQQAAgABEgM0FRsKDAoFBAACAAMSAzQeHwrEAgoCBAESBD0ATQEatwIgYFZhbHVlYCByZXByZXNlbnRzIGEgZHluYW1pY2FsbHkgdHlwZWQgdmFsdWUgd2hpY2ggY2FuIGJlIGVpdGhlcgogbnVsbCwgYSBudW1iZXIsIGEgc3RyaW5nLCBhIGJvb2xlYW4sIGEgcmVjdXJzaXZlIHN0cnVjdCB2YWx1ZSwgb3IgYQogbGlzdCBvZiB2YWx1ZXMuIEEgcHJvZHVjZXIgb2YgdmFsdWUgaXMgZXhwZWN0ZWQgdG8gc2V0IG9uZSBvZiB0aGVzZQogdmFyaWFudHMuIEFic2VuY2Ugb2YgYW55IHZhcmlhbnQgaW5kaWNhdGVzIGFuIGVycm9yLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgVmFsdWVgIGlzIEpTT04gdmFsdWUuCgoKCgMEAQESAz0IDQoiCgQEAQgAEgQ/AkwDGhQgVGhlIGtpbmQgb2YgdmFsdWUuCgoMCgUEAQgAARIDPwgMCicKBAQBAgASA0EEHRoaIFJlcHJlc2VudHMgYSBudWxsIHZhbHVlLgoKDAoFBAECAAYSA0EEDQoMCgUEAQIAARIDQQ4YCgwKBQQBAgADEgNBGxwKKQoEBAECARIDQwQcGhwgUmVwcmVzZW50cyBhIGRvdWJsZSB2YWx1ZS4KCgwKBQQBAgEFEgNDBAoKDAoFBAECAQESA0MLFwoMCgUEAQIBAxIDQxobCikKBAQBAgISA0UEHBocIFJlcHJlc2VudHMgYSBzdHJpbmcgdmFsdWUuCgoMCgUEAQICBRIDRQQKCgwKBQQBAgIBEgNFCxcKDAoFBAECAgMSA0UaGwoqCgQEAQIDEgNHBBgaHSBSZXByZXNlbnRzIGEgYm9vbGVhbiB2YWx1ZS4KCgwKBQQBAgMFEgNHBAgKDAoFBAECAwESA0cJEwoMCgUEAQIDAxIDRxYXCi0KBAQBAgQSA0kEHBogIFJlcHJlc2VudHMgYSBzdHJ1Y3R1cmVkIHZhbHVlLgoKDAoFBAECBAYSA0kECgoMCgUEAQIEARIDSQsXCgwKBQQBAgQDEgNJGhsKLQoEBAECBRIDSwQdGiAgUmVwcmVzZW50cyBhIHJlcGVhdGVkIGBWYWx1ZWAuCgoMCgUEAQIFBhIDSwQNCgwKBQQBAgUBEgNLDhgKDAoFBAECBQMSA0sbHAqoAQoCBQASBFMAVgEamwEgYE51bGxWYWx1ZWAgaXMgYSBzaW5nbGV0b24gZW51bWVyYXRpb24gdG8gcmVwcmVzZW50IHRoZSBudWxsIHZhbHVlIGZvciB0aGUKIGBWYWx1ZWAgdHlwZSB1bmlvbi4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYE51bGxWYWx1ZWAgaXMgSlNPTiBgbnVsbGAuCgoKCgMFAAESA1MFDgoaCgQFAAIAEgNVAhEaDSBOdWxsIHZhbHVlLgoKDAoFBQACAAESA1UCDAoMCgUFAAIAAhIDVQ8QCoIBCgIEAhIEWwBeARp2IGBMaXN0VmFsdWVgIGlzIGEgd3JhcHBlciBhcm91bmQgYSByZXBlYXRlZCBmaWVsZCBvZiB2YWx1ZXMuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBMaXN0VmFsdWVgIGlzIEpTT04gYXJyYXkuCgoKCgMEAgESA1sIEQo6CgQEAgIAEgNdAhwaLSBSZXBlYXRlZCBmaWVsZCBvZiBkeW5hbWljYWxseSB0eXBlZCB2YWx1ZXMuCgoMCgUEAgIABBIDXQIKCgwKBQQCAgAGEgNdCxAKDAoFBAICAAESA10RFwoMCgUEAgIAAxIDXRobYgZwcm90bzMK2E4KI2NzaGFycC9wcm90b3MvdW5pdHRlc3RfaXNzdWVzLnByb3RvEg91bml0dGVzdF9pc3N1ZXMaHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8iJwoISXNzdWUzMDcaGwoKTmVzdGVkT25jZRoNCgtOZXN0ZWRUd2ljZSLNAQoTTmVnYXRpdmVFbnVtTWVzc2FnZRIzCgV2YWx1ZRgBIAEoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1SBXZhbHVlEjkKBnZhbHVlcxgCIAMoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1CAhAAUgZ2YWx1ZXMSRgoNcGFja2VkX3ZhbHVlcxgDIAMoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1CAhABUgxwYWNrZWRWYWx1ZXMiFQoPRGVwcmVjYXRlZENoaWxkOgIYASKLAwoXRGVwcmVjYXRlZEZpZWxkc01lc3NhZ2USKgoOUHJpbWl0aXZlVmFsdWUYASABKAVCAhgBUg5QcmltaXRpdmVWYWx1ZRIqCg5QcmltaXRpdmVBcnJheRgCIAMoBUICGAFSDlByaW1pdGl2ZUFycmF5EkgKDE1lc3NhZ2VWYWx1ZRgDIAEoCzIgLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkQ2hpbGRCAhgBUgxNZXNzYWdlVmFsdWUSSAoMTWVzc2FnZUFycmF5GAQgAygLMiAudW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRDaGlsZEICGAFSDE1lc3NhZ2VBcnJheRJBCglFbnVtVmFsdWUYBSABKA4yHy51bml0dGVzdF9pc3N1ZXMuRGVwcmVjYXRlZEVudW1CAhgBUglFbnVtVmFsdWUSQQoJRW51bUFycmF5GAYgAygOMh8udW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRFbnVtQgIYAVIJRW51bUFycmF5Ih8KCUl0ZW1GaWVsZBISCgRpdGVtGAEgASgFUgRpdGVtIlcKDVJlc2VydmVkTmFtZXMSFAoFdHlwZXMYASABKAVSBXR5cGVzEh4KCmRlc2NyaXB0b3IYAiABKAVSCmRlc2NyaXB0b3IaEAoOU29tZU5lc3RlZFR5cGUi3wEKFVRlc3RKc29uRmllbGRPcmRlcmluZxIfCgtwbGFpbl9pbnQzMhgEIAEoBVIKcGxhaW5JbnQzMhIdCglvMV9zdHJpbmcYAiABKAlIAFIIbzFTdHJpbmcSGwoIbzFfaW50MzIYBSABKAVIAFIHbzFJbnQzMhIhCgxwbGFpbl9zdHJpbmcYASABKAlSC3BsYWluU3RyaW5nEhsKCG8yX2ludDMyGAYgASgFSAFSB28ySW50MzISHQoJbzJfc3RyaW5nGAMgASgJSAFSCG8yU3RyaW5nQgQKAm8xQgQKAm8yIlEKDFRlc3RKc29uTmFtZRISCgRuYW1lGAEgASgJUgRuYW1lEhkKC2Rlc2NyaXB0aW9uGAIgASgJUgRkZXNjEhIKBGd1aWQYAyABKAlSBGV4aWQikwEKDE9uZW9mTWVyZ2luZxIUCgR0ZXh0GAEgASgJSABSBHRleHQSPgoGbmVzdGVkGAIgASgLMiQudW5pdHRlc3RfaXNzdWVzLk9uZW9mTWVyZ2luZy5OZXN0ZWRIAFIGbmVzdGVkGiQKBk5lc3RlZBIMCgF4GAEgASgFUgF4EgwKAXkYAiABKAVSAXlCBwoFdmFsdWUigwEKFk51bGxWYWx1ZU91dHNpZGVTdHJ1Y3QSIwoMc3RyaW5nX3ZhbHVlGAEgASgJSABSC3N0cmluZ1ZhbHVlEjsKCm51bGxfdmFsdWUYAiABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSABSCW51bGxWYWx1ZUIHCgV2YWx1ZSJQChNOdWxsVmFsdWVOb3RJbk9uZW9mEjkKCm51bGxfdmFsdWUYAiABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlUgludWxsVmFsdWUifQoXTWl4ZWRSZWd1bGFyQW5kT3B0aW9uYWwSIwoNcmVndWxhcl9maWVsZBgBIAEoCVIMcmVndWxhckZpZWxkEioKDm9wdGlvbmFsX2ZpZWxkGAIgASgJSABSDW9wdGlvbmFsRmllbGSIAQFCEQoPX29wdGlvbmFsX2ZpZWxkIkIKEk9uZW9mV2l0aE5vbmVGaWVsZBIOCgF4GAEgASgJSABSAXgSFAoEbm9uZRgCIAEoCUgAUgRub25lQgYKBHRlc3QiOwoRT25lb2ZXaXRoTm9uZU5hbWUSDgoBeBgBIAEoCUgAUgF4Eg4KAXkYAiABKAlIAFIBeUIGCgRub25lIqIDChlEaXNhbWJpZ3VhdGVDb21tb25NZW1iZXJzEj4KG2Rpc2FtYmlndWF0ZV9jb21tb25fbWVtYmVycxgBIAEoBVIZZGlzYW1iaWd1YXRlQ29tbW9uTWVtYmVycxIUCgV0eXBlcxgCIAEoBVIFdHlwZXMSHgoKZGVzY3JpcHRvchgDIAEoBVIKZGVzY3JpcHRvchIWCgZlcXVhbHMYBCABKAVSBmVxdWFscxIbCgl0b19zdHJpbmcYBSABKAVSCHRvU3RyaW5nEiIKDWdldF9oYXNoX2NvZGUYBiABKAVSC2dldEhhc2hDb2RlEhkKCHdyaXRlX3RvGAcgASgFUgd3cml0ZVRvEhQKBWNsb25lGAggASgFUgVjbG9uZRIlCg5jYWxjdWxhdGVfc2l6ZRgJIAEoBVINY2FsY3VsYXRlU2l6ZRIdCgptZXJnZV9mcm9tGAogASgFUgltZXJnZUZyb20SJwoPb25fY29uc3RydWN0aW9uGAsgASgFUg5vbkNvbnN0cnVjdGlvbhIWCgZwYXJzZXIYDCABKAVSBnBhcnNlcipVCgxOZWdhdGl2ZUVudW0SFgoSTkVHQVRJVkVfRU5VTV9aRVJPEAASFgoJRml2ZUJlbG93EPv//////////wESFQoITWludXNPbmUQ////////////ASo2Cg5EZXByZWNhdGVkRW51bRIXCg9ERVBSRUNBVEVEX1pFUk8QABoCCAESBwoDb25lEAEaAhgBQh2qAhpVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvc0rrOwoHEgUeANsBAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBCBIDJAA3Co4CCgIIJRIDJAA3GmUgSXNzdWU6IE5vbi0iR29vZ2xlLlByb3RvYnVmZmVycyIgbmFtZXNwYWNlIHdpbGwgZW5zdXJlIHRoYXQgcHJvdG9idWZmZXIgbGlicmFyeSB0eXBlcyBhcmUgcXVhbGlmaWVkCjKbASBUaGVzZSBwcm90byBkZXNjcmlwdG9ycyBoYXZlIGF0IG9uZSB0aW1lIGJlZW4gcmVwb3J0ZWQgYXMgYW4gaXNzdWUgb3IgZGVmZWN0LgogVGhleSBhcmUga2VwdCBoZXJlIHRvIHJlcGxpY2F0ZSB0aGUgaXNzdWUs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cHRvclByb3RvUgdzZXJ2aWNlEkMKCWV4dGVuc2lvbhgHIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEjYKB29wdGlvbnMYCCABKAsyHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnNSB29wdGlvbnMSSQoQc291cmNlX2NvZGVfaW5mbxgJIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mb1IOc291cmNlQ29kZUluZm8SFgoGc3ludGF4GAwgASgJUgZzeW50YXgSGAoHZWRpdGlvbhgNIAEoCVIHZWRpdGlvbiK5BgoPRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSOwoFZmllbGQYAiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SBWZpZWxkEkMKCWV4dGVuc2lvbhgGIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEkEKC25lc3RlZF90eXBlGAMgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1IKbmVzdGVkVHlwZRJBCgllbnVtX3R5cGUYBCADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSWAoPZXh0ZW5zaW9uX3JhbmdlGAUgAygLMi8uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5FeHRlbnNpb25SYW5nZVIOZXh0ZW5zaW9uUmFuZ2USRAoKb25lb2ZfZGVjbBgIIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5PbmVvZkRlc2NyaXB0b3JQcm90b1IJb25lb2ZEZWNsEjkKB29wdGlvbnMYByABKAsyHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnNSB29wdGlvbnMSVQoOcmVzZXJ2ZWRfcmFuZ2UYCSADKAsyLi5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgKIAMoCVIMcmVzZXJ2ZWROYW1lGnoKDkV4dGVuc2lvblJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZBJACgdvcHRpb25zGAMgASgLMiYuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9uc1IHb3B0aW9ucxo3Cg1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCJ8ChVFeHRlbnNpb25SYW5nZU9wdGlvbnMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLBBgoURmllbGREZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAyABKAVSBm51bWJlchJBCgVsYWJlbBgEIAEoDjIrLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5MYWJlbFIFbGFiZWwSPgoEdHlwZRgFIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlUgR0eXBlEhsKCXR5cGVfbmFtZRgGIAEoCVIIdHlwZU5hbWUSGgoIZXh0ZW5kZWUYAiABKAlSCGV4dGVuZGVlEiMKDWRlZmF1bHRfdmFsdWUYByABKAlSDGRlZmF1bHRWYWx1ZRIfCgtvbmVvZl9pbmRleBgJIAEoBVIKb25lb2ZJbmRleBIbCglqc29uX25hbWUYCiABKAlSCGpzb25OYW1lEjcKB29wdGlvbnMYCCABKAsyHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zUgdvcHRpb25zEicKD3Byb3RvM19vcHRpb25hbBgRIAEoCFIOcHJvdG8zT3B0aW9uYWwitgIKBFR5cGUSDwoLVFlQRV9ET1VCTEUQARIOCgpUWVBFX0ZMT0FUEAISDgoKVFlQRV9JTlQ2NBADEg8KC1RZUEVfVUlOVDY0EAQSDgoKVFlQRV9JTlQzMhAFEhAKDFRZUEVfRklYRUQ2NBAGEhAKDFRZUEVfRklYRUQzMhAHEg0KCVRZUEVfQk9PTBAIEg8KC1RZUEVfU1RSSU5HEAkSDgoKVFlQRV9HUk9VUBAKEhAKDFRZUEVfTUVTU0FHRRALEg4KClRZUEVfQllURVMQDBIPCgtUWVBFX1VJTlQzMhANEg0KCVRZUEVfRU5VTRAOEhEKDVRZUEVfU0ZJWEVEMzIQDxIRCg1UWVBFX1NGSVhFRDY0EBASDwoLVFlQRV9TSU5UMzIQERIPCgtUWVBFX1NJTlQ2NBASIkMKBUxhYmVsEhIKDkxBQkVMX09QVElPTkFMEAESEgoOTEFCRUxfUkVRVUlSRUQQAhISCg5MQUJFTF9SRVBFQVRFRBADImMKFE9uZW9mRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSNwoHb3B0aW9ucxgCIAEoCzIdLmdvb2dsZS5wcm90b2J1Zi5PbmVvZk9wdGlvbnNSB29wdGlvbnMi4wIKE0VudW1EZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRI/CgV2YWx1ZRgCIAMoCzIpLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVEZXNjcmlwdG9yUHJvdG9SBXZhbHVlEjYKB29wdGlvbnMYAyABKAsyHC5nb29nbGUucHJvdG9idWYuRW51bU9wdGlvbnNSB29wdGlvbnMSXQoOcmVzZXJ2ZWRfcmFuZ2UYBCADKAsyNi5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90by5FbnVtUmVzZXJ2ZWRSYW5nZVINcmVzZXJ2ZWRSYW5nZRIjCg1yZXNlcnZlZF9uYW1lGAUgAygJUgxyZXNlcnZlZE5hbWUaOwoRRW51bVJlc2VydmVkUmFuZ2USFAoFc3RhcnQYASABKAVSBXN0YXJ0EhAKA2VuZBgCIAEoBVIDZW5kIoMBChhFbnVtVmFsdWVEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAiABKAVSBm51bWJlchI7CgdvcHRpb25zGAMgASgLMiEuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnNSB29wdGlvbnMipwEKFlNlcnZpY2VEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRI+CgZtZXRob2QYAiADKAsyJi5nb29nbGUucHJvdG9idWYuTWV0aG9kRGVzY3JpcHRvclByb3RvUgZtZXRob2QSOQoHb3B0aW9ucxgDIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlT3B0aW9uc1IHb3B0aW9ucyKJAgoVTWV0aG9kRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSHQoKaW5wdXRfdHlwZRgCIAEoCVIJaW5wdXRUeXBlEh8KC291dHB1dF90eXBlGAMgASgJUgpvdXRwdXRUeXBlEjgKB29wdGlvbnMYBCABKAsyHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9uc1IHb3B0aW9ucxIwChBjbGllbnRfc3RyZWFtaW5nGAUgASgIOgVmYWxzZVIPY2xpZW50U3RyZWFtaW5nEjAKEHNlcnZlcl9zdHJlYW1pbmcYBiABKAg6BWZhbHNlUg9zZXJ2ZXJTdHJlYW1pbmcikQkKC0ZpbGVPcHRpb25zEiEKDGphdmFfcGFja2FnZRgBIAEoCVILamF2YVBhY2thZ2USMAoUamF2YV9vdXRlcl9jbGFzc25hbWUYCCABKAlSEmphdmFPdXRlckNsYXNzbmFtZRI1ChNqYXZhX211bHRpcGxlX2ZpbGVzGAogASgIOgVmYWxzZVIRamF2YU11bHRpcGxlRmlsZXMSRAodamF2YV9nZW5lcmF0ZV9lcXVhbHNfYW5kX2hhc2gYFCABKAhCAhgBUhlqYXZhR2VuZXJhdGVFcXVhbHNBbmRIYXNoEjoKFmphdmFfc3RyaW5nX2NoZWNrX3V0ZjgYGyABKAg6BWZhbHNlUhNqYXZhU3RyaW5nQ2hlY2tVdGY4ElMKDG9wdGltaXplX2ZvchgJIAEoDjIpLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9ucy5PcHRpbWl6ZU1vZGU6BVNQRUVEUgtvcHRpbWl6ZUZvchIdCgpnb19wYWNrYWdlGAsgASgJUglnb1BhY2thZ2USNQoTY2NfZ2VuZXJpY19zZXJ2aWNlcxgQIAEoCDoFZmFsc2VSEWNjR2VuZXJpY1NlcnZpY2VzEjkKFWphdmFfZ2VuZXJpY19zZXJ2aWNlcxgRIAEoCDoFZmFsc2VSE2phdmFHZW5lcmljU2VydmljZXMSNQoTcHlfZ2VuZXJpY19zZXJ2aWNlcxgSIAEoCDoFZmFsc2VSEXB5R2VuZXJpY1NlcnZpY2VzEjcKFHBocF9nZW5lcmljX3NlcnZpY2VzGCogASgIOgVmYWxzZVIScGhwR2VuZXJpY1NlcnZpY2VzEiUKCmRlcHJlY2F0ZWQYFyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEi4KEGNjX2VuYWJsZV9hcmVuYXMYHyABKAg6BHRydWVSDmNjRW5hYmxlQXJlbmFzEioKEW9iamNfY2xhc3NfcHJlZml4GCQgASgJUg9vYmpjQ2xhc3NQcmVmaXgSKQoQY3NoYXJwX25hbWVzcGFjZRglIAEoCVIPY3NoYXJwTmFtZXNwYWNlEiEKDHN3aWZ0X3ByZWZpeBgnIAEoCVILc3dpZnRQcmVmaXgSKAoQcGhwX2NsYXNzX3ByZWZpeBgoIAEoCVIOcGhwQ2xhc3NQcmVmaXgSIwoNcGhwX25hbWVzcGFjZRgpIAEoCVIMcGhwTmFtZXNwYWNlEjQKFnBocF9tZXRhZGF0YV9uYW1lc3BhY2UYLCABKAlSFHBocE1ldGFkYXRhTmFtZXNwYWNlEiEKDHJ1YnlfcGFja2FnZRgtIAEoCVILcnVieVBhY2thZ2USWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iOgoMT3B0aW1pemVNb2RlEgkKBVNQRUVEEAESDQoJQ09ERV9TSVpFEAISEAoMTElURV9SVU5USU1FEAMqCQjoBxCAgICAAkoECCYQJyK7AwoOTWVzc2FnZU9wdGlvbnMSPAoXbWVzc2FnZV9zZXRfd2lyZV9mb3JtYXQYASABKAg6BWZhbHNlUhRtZXNzYWdlU2V0V2lyZUZvcm1hdBJMCh9ub19zdGFuZGFyZF9kZXNjcmlwdG9yX2FjY2Vzc29yGAIgASgIOgVmYWxzZVIcbm9TdGFuZGFyZERlc2NyaXB0b3JBY2Nlc3NvchIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIbCgltYXBfZW50cnkYByABKAhSCG1hcEVudHJ5ElYKJmRlcHJlY2F0ZWRfbGVnYWN5X2pzb25fZmllbGRfY29uZmxpY3RzGAsgASgIQgIYAVIiZGVwcmVjYXRlZExlZ2FjeUpzb25GaWVsZENvbmZsaWN0cxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACSgQIBBAFSgQIBRAGSgQIBhAHSgQICBAJSgQICRAKIrcICgxGaWVsZE9wdGlvbnMSQQoFY3R5cGUYASABKA4yIy5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkNUeXBlOgZTVFJJTkdSBWN0eXBlEhYKBnBhY2tlZBgCIAEoCFIGcGFja2VkEkcKBmpzdHlwZRgGIAEoDjIkLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuSlNUeXBlOglKU19OT1JNQUxSBmpzdHlwZRIZCgRsYXp5GAUgASgIOgVmYWxzZVIEbGF6eRIuCg91bnZlcmlmaWVkX2xhenkYDyABKAg6BWZhbHNlUg51bnZlcmlmaWVkTGF6eRIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIZCgR3ZWFrGAogASgIOgVmYWxzZVIEd2VhaxIoCgxkZWJ1Z19yZWRhY3QYECABKAg6BWZhbHNlUgtkZWJ1Z1JlZGFjdBJLCglyZXRlbnRpb24YESABKA4yLS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLk9wdGlvblJldGVudGlvblIJcmV0ZW50aW9uEkYKBnRhcmdldBgSIAEoDjIuLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuT3B0aW9uVGFyZ2V0VHlwZVIGdGFyZ2V0ElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIi8KBUNUeXBlEgoKBlNUUklORxAAEggKBENPUkQQARIQCgxTVFJJTkdfUElFQ0UQAiI1CgZKU1R5cGUSDQoJSlNfTk9STUFMEAASDQoJSlNfU1RSSU5HEAESDQoJSlNfTlVNQkVSEAIiVQoPT3B0aW9uUmV0ZW50aW9uEhUKEVJFVEVOVElPTl9VTktOT1dOEAASFQoRUkVURU5USU9OX1JVTlRJTUUQARIUChBSRVRFTlRJT05fU09VUkNFEAIijAIKEE9wdGlvblRhcmdldFR5cGUSFwoTVEFSR0VUX1RZUEVfVU5LTk9XThAAEhQKEFRBUkdFVF9UWVBFX0ZJTEUQARIfChtUQVJHRVRfVFlQRV9FWFRFTlNJT05fUkFOR0UQAhIXChNUQVJHRVRfVFlQRV9NRVNTQUdFEAMSFQoRVEFSR0VUX1RZUEVfRklFTEQQBBIVChFUQVJHRVRfVFlQRV9PTkVPRhAFEhQKEFRBUkdFVF9UWVBFX0VOVU0QBhIaChZUQVJHRVRfVFlQRV9FTlVNX0VOVFJZEAcSFwoTVEFSR0VUX1RZUEVfU0VSVklDRRAIEhYKElRBUkdFVF9UWVBFX01FVEhPRBAJKgkI6AcQgICAgAJKBAgEEAUicwoMT25lb2ZPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIimAIKC0VudW1PcHRpb25zEh8KC2FsbG93X2FsaWFzGAIgASgIUgphbGxvd0FsaWFzEiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkElYKJmRlcHJlY2F0ZWRfbGVnYWN5X2pzb25fZmllbGRfY29uZmxpY3RzGAYgASgIQgIYAVIiZGVwcmVjYXRlZExlZ2FjeUpzb25GaWVsZENvbmZsaWN0cxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACSgQIBRAGIp4BChBFbnVtVmFsdWVPcHRpb25zEiUKCmRlcHJlY2F0ZWQYASABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIinAEKDlNlcnZpY2VPcHRpb25zEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIi4AIKDU1ldGhvZE9wdGlvbnMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQScQoRaWRlbXBvdGVuY3lfbGV2ZWwYIiABKA4yLy5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucy5JZGVtcG90ZW5jeUxldmVsOhNJREVNUE9URU5DWV9VTktOT1dOUhBpZGVtcG90ZW5jeUxldmVsElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIlAKEElkZW1wb3RlbmN5TGV2ZWwSFwoTSURFTVBPVEVOQ1lfVU5LTk9XThAAEhMKD05PX1NJREVfRUZGRUNUUxABEg4KCklERU1QT1RFTlQQAioJCOgHEICAgIACIpoDChNVbmludGVycHJldGVkT3B0aW9uEkEKBG5hbWUYAiADKAsyLS5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbi5OYW1lUGFydFIEbmFtZRIpChBpZGVudGlmaWVyX3ZhbHVlGAMgASgJUg9pZGVudGlmaWVyVmFsdWUSLAoScG9zaXRpdmVfaW50X3ZhbHVlGAQgASgEUhBwb3NpdGl2ZUludFZhbHVlEiwKEm5lZ2F0aXZlX2ludF92YWx1ZRgFIAEoA1IQbmVnYXRpdmVJbnRWYWx1ZRIhCgxkb3VibGVfdmFsdWUYBiABKAFSC2RvdWJsZVZhbHVlEiEKDHN0cmluZ192YWx1ZRgHIAEoDFILc3RyaW5nVmFsdWUSJwoPYWdncmVnYXRlX3ZhbHVlGAggASgJUg5hZ2dyZWdhdGVWYWx1ZRpKCghOYW1lUGFydBIbCgluYW1lX3BhcnQYASACKAlSCG5hbWVQYXJ0EiEKDGlzX2V4dGVuc2lvbhgCIAIoCFILaXNFeHRlbnNpb24ipwIKDlNvdXJjZUNvZGVJbmZvEkQKCGxvY2F0aW9uGAEgAygLMiguZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvLkxvY2F0aW9uUghsb2NhdGlvbhrOAQoITG9jYXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSFgoEc3BhbhgCIAMoBUICEAFSBHNwYW4SKQoQbGVhZGluZ19jb21tZW50cxgDIAEoCVIPbGVhZGluZ0NvbW1lbnRzEisKEXRyYWlsaW5nX2NvbW1lbnRzGAQgASgJUhB0cmFpbGluZ0NvbW1lbnRzEjoKGWxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMYBiADKAlSF2xlYWRpbmdEZXRhY2hlZENvbW1lbnRzItACChFHZW5lcmF0ZWRDb2RlSW5mbxJNCgphbm5vdGF0aW9uGAEgAygLMi0uZ29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb25SCmFubm90YXRpb24a6wEKCkFubm90YXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSHwoLc291cmNlX2ZpbGUYAiABKAlSCnNvdXJjZUZpbGUSFAoFYmVnaW4YAyABKAVSBWJlZ2luEhAKA2VuZBgEIAEoBVIDZW5kElIKCHNlbWFudGljGAUgASgOMjYuZ29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb24uU2VtYW50aWNSCHNlbWFudGljIigKCFNlbWFudGljEggKBE5PTkUQABIHCgNTRVQQARIJCgVBTElBUxACQn4KE2NvbS5nb29nbGUucHJvdG9idWZCEERlc2NyaXB0b3JQcm90b3NIAVotZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMvZGVzY3JpcHRvcnBi+AEBogIDR1BCqgIaR29vZ2xlLlByb3RvYnVmLlJlZmxlY3Rpb25K/eYCCgcSBSYAzgcBCqoPCgEMEgMmABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLbAiBBdXRob3I6IGtlbnRvbkBnb29nbGUuY29tIChLZW50b24gVmFyZGEpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBUaGUgbWVzc2FnZXMgaW4gdGhpcyBmaWxlIGRlc2NyaWJlIHRoZSBkZWZpbml0aW9ucyBmb3VuZCBpbiAucHJvdG8gZmlsZXMuCiBBIHZhbGlkIC5wcm90byBmaWxl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bwogc2lnbmFsIHRvIG9sZCBwcm90bzMgY2xpZW50cyB0aGF0IHByZXNlbmNlIGlzIHRyYWNrZWQgZm9yIHRoaXMgZmllbGQuIFRoaXMKIG9uZW9mIGlzIGtub3duIGFzIGEgInN5bnRoZXRpYyIgb25lb2YsIGFuZCB0aGlzIGZpZWxkIG11c3QgYmUgaXRzIHNvbGUKIG1lbWJlciAoZWFjaCBwcm90bzMgb3B0aW9uYWwgZmllbGQgZ2V0cyBpdHMgb3duIHN5bnRoZXRpYyBvbmVvZikuIFN5bnRoZXRpYwogb25lb2ZzIGV4aXN0IGluIHRoZSBkZXNjcmlwdG9yIG9ubHksIGFuZCBkbyBub3QgZ2VuZXJhdGUgYW55IEFQSS4gU3ludGhldGljCiBvbmVvZnMgbXVzdCBiZSBvcmRlcmVkIGFmdGVyIGFsbCAicmVhbCIgb25lb2ZzLgoKIEZvciBtZXNzYWdlIGZpZWxkcywgcHJvdG8zX29wdGlvbmFsIGRvZXNuJ3QgY3JlYXRlIGFueSBzZW1hbnRpYyBjaGFuZ2UsCiBzaW5jZSBub24tcmVwZWF0ZWQgbWVzc2FnZSBmaWVsZHMgYWx3YXlzIHRyYWNrIHByZXNlbmNlLiBIb3dldmVyIGl0IHN0aWxsCiBpbmRpY2F0ZXMgdGhlIHNlbWFudGljIGRldGFpbCBvZiB3aGV0aGVyIHRoZSB1c2VyIHdyb3RlICJvcHRpb25hbCIgb3Igbm90LgogVGhpcyBjYW4gYmUgdXNlZnVsIGZvciByb3VuZC10cmlwcGluZyB0aGUgLnByb3RvIGZpbGUuIEZvciBjb25zaXN0ZW5jeSB3ZQogZ2l2ZSBtZXNzYWdlIGZpZWxkcyBhIHN5bnRoZXRpYyBvbmVvZiBhbHNvLCBldmVuIHRob3VnaCBpdCBpcyBub3QgcmVxdWlyZWQKIHRvIHRyYWNrIHByZXNlbmNlLiBUaGlzIGlzIGVzcGVjaWFsbHkgaW1wb3J0YW50IGJlY2F1c2UgdGhlIHBhcnNlciBjYW4ndAogdGVsbCBpZiBhIGZpZWxkIGlzIGEgbWVzc2FnZSBvciBhbiBlbnVtLCBzbyBpdCBtdXN0IGFsd2F5cyBjcmVhdGUgYQogc3ludGhldGljIG9uZW9mLgoKIFByb3RvMiBvcHRpb25hbCBmaWVsZHMgZG8gbm90IHNldCB0aGlzIGZsYWcsIGJlY2F1c2UgdGhleSBhbHJlYWR5IGluZGljYXRlCiBvcHRpb25hbCB3aXRoIGBMQUJFTF9PUFRJT05BTGAuCgoNCgUEBAIKBBIE7wECCgoNCgUEBAIKBRIE7wELDwoNCgUEBAIKARIE7wEQHwoNCgUEBAIKAxIE7wEiJAoiCgIEBRIG8wEA9gEBGhQgRGVzY3JpYmVzIGEgb25lb2YuCgoLCgMEBQESBPMBCBwKDAoEBAUCABIE9AECGwoNCgUEBQIABBIE9AECCgoNCgUEBQIABRIE9AELEQoNCgUEBQIAARIE9AESFgoNCgUEBQIAAxIE9AEZGgoMCgQEBQIBEgT1AQIkCg0KBQQFAgEEEgT1AQIKCg0KBQQFAgEGEgT1AQsXCg0KBQQFAgEBEgT1ARgfCg0KBQQFAgEDEgT1ASIjCicKAgQGEgb5AQCTAgEaGSBEZXNjcmliZXMgYW4gZW51bSB0eXBlLgoKCwoDBAYBEgT5AQgbCgwKBAQGAgASBPoBAhsKDQoFBAYCAAQSBPoBAgoKDQoFBAYCAAUSBPoBCxEKDQoFBAYCAAESBPoBEhYKDQoFBAYCAAMSBPoBGRoKDAoEBAYCARIE/AECLgoNCgUEBgIBBBIE/AECCgoNCgUEBgIBBhIE/AELIwoNCgUEBgIBARIE/AEkKQoNCgUEBgIBAxIE/AEsLQoMCgQEBgICEgT+AQIjCg0KBQQGAgIEEgT+AQIKCg0KBQQGAgIGEgT+AQsWCg0KBQQGAgIBEgT+ARceCg0KBQQGAgIDEgT+ASEiCq8CCgQEBgMAEgaGAgKJAgMangIgUmFuZ2Ugb2YgcmVzZXJ2ZWQgbnVtZXJpYyB2YWx1ZXMuIFJlc2VydmVkIHZhbHVlcyBtYXkgbm90IGJlIHVzZWQgYnkKIGVudHJpZXMgaW4gdGhlIHNhbWUgZW51bS4gUmVzZXJ2ZWQgcmFuZ2VzIG1heSBub3Qgb3ZlcmxhcC4KCiBOb3RlIHRoYXQgdGhpcyBpcyBkaXN0aW5jdCBmcm9tIERlc2NyaXB0b3JQcm90by5SZXNlcnZlZFJhbmdlIGluIHRoYXQgaXQKIGlzIGluY2x1c2l2ZSBzdWNoIHRoYXQgaXQgY2FuIGFwcHJvcHJpYXRlbHkgcmVwcmVzZW50IHRoZSBlbnRpcmUgaW50MzIKIGRvbWFpbi4KCg0KBQQGAwABEgSGAgobChwKBgQGAwACABIEhwIEHSIMIEluY2x1c2l2ZS4KCg8KBwQGAwACAAQSBIcCBAwKDwoHBAYDAAIABRIEhwINEgoPCgcEBgMAAgABEgSHAhMYCg8KBwQGAwACAAMSBIcCGxwKHAoGBAYDAAIBEgSIAgQbIgwgSW5jbHVzaXZlLgoKDwoHBAYDAAIBBBIEiAIEDAoPCgcEBgMAAgEFEgSIAg0SCg8KBwQGAwACAQESBIgCExYKDwoHBAYDAAIBAxIEiAIZGgqqAQoEBAYCAxIEjgICMBqbASBSYW5nZSBvZiByZXNlcnZlZCBudW1lcmljIHZhbHVlcy4gUmVzZXJ2ZWQgbnVtZXJpYyB2YWx1ZXMgbWF5IG5vdCBiZSB1c2VkCiBieSBlbnVtIHZhbHVlcyBpbiB0aGUgc2FtZSBlbnVtIGRlY2xhcmF0aW9uLiBSZXNlcnZlZCByYW5nZXMgbWF5IG5vdAogb3ZlcmxhcC4KCg0KBQQGAgMEEgSOAgIKCg0KBQQGAgMGEgSOAgscCg0KBQQGAgMBEgSOAh0rCg0KBQQGAgMDEgSOAi4vCmwKBAQGAgQSBJICAiQaXiBSZXNlcnZlZCBlbnVtIHZhbHVlIG5hbWVzLCB3aGljaCBtYXkgbm90IGJlIHJldXNlZC4gQSBnaXZlbiBuYW1lIG1heSBvbmx5CiBiZSByZXNlcnZlZCBvbmNlLgoKDQoFBAYCBAQSBJICAgoKDQoFBAYCBAUSBJICCxEKDQoFBAYCBAESBJICEh8KDQoFBAYCBAMSBJICIiMKMQoCBAcSBpYCAJsCARojIERlc2NyaWJlcyBhIHZhbHVlIHdpdGhpbiBhbiBlbnVtLgoKCwoDBAcBEgSWAgggCgwKBAQHAgASBJcCAhsKDQoFBAcCAAQSBJcCAgoKDQoFBAcCAAUSBJcCCxEKDQoFBAcCAAESBJcCEhYKDQoFBAcCAAMSBJcCGRoKDAoEBAcCARIEmAICHAoNCgUEBwIBBBIEmAICCgoNCgUEBwIBBRIEmAILEAoNCgUEBwIBARIEmAIRFwoNCgUEBwIBAxIEmAIaGwoMCgQEBwICEgSaAgIoCg0KBQQHAgIEEgSaAgIKCg0KBQQHAgIGEgSaAgsbCg0KBQQHAgIBEgSaAhwjCg0KBQQHAgIDEgSaAiYnCiQKAgQIEgaeAgCjAgEaFiBEZXNjcmliZXMgYSBzZXJ2aWNlLgoKCwoDBAgBEgSeAggeCgwKBAQIAgASBJ8CAhsKDQoFBAgCAAQSBJ8CAgoKDQoFBAgCAAUSBJ8CCxEKDQoFBAgCAAESBJ8CEhYKDQoFBAgCAAMSBJ8CGRoKDAoEBAgCARIEoAICLAoNCgUECAIBBBIEoAICCgoNCgUECAIBBhIEoAILIAoNCgUECAIBARIEoAIhJwoNCgUECAIBAxIEoAIqKwoMCgQECAICEgSiAgImCg0KBQQIAgIEEgSiAgIKCg0KBQQIAgIGEgSiAgsZCg0KBQQIAgIBEgSiAhohCg0KBQQIAgIDEgSiAiQlCjAKAgQJEgamAgC0AgEaIiBEZXNjcmliZXMgYSBtZXRob2Qgb2YgYSBzZXJ2aWNlLgoKCwoDBAkBEgSmAggdCgwKBAQJAgASBKcCAhsKDQoFBAkCAAQSBKcCAgoKDQoFBAkCAAUSBKcCCxEKDQoFBAkCAAESBKcCEhYKDQoFBAkCAAMSBKcCGRoKlwEKBAQJAgESBKsCAiEaiAEgSW5wdXQgYW5kIG91dHB1dCB0eXBlIG5hbWVzLiAgVGhlc2UgYXJlIHJlc29sdmVkIGluIHRoZSBzYW1lIHdheSBhcwogRmllbGREZXNjcmlwdG9yUHJvdG8udHlwZV9uYW1lLCBidXQgbXVzdCByZWZlciB0byBhIG1lc3NhZ2UgdHlwZS4KCg0KBQQJAgEEEgSrAgIKCg0KBQQJAgEFEgSrAgsRCg0KBQQJAgEBEgSrAhIcCg0KBQQJAgEDEgSrAh8gCgwKBAQJAgISBKwCAiIKDQoFBAkCAgQSBKwCAgoKDQoFBAkCAgUSBKwCCxEKDQoFBAkCAgESBKwCEh0KDQoFBAkCAgMSBKwCICEKDAoEBAkCAxIErgICJQoNCgUECQIDBBIErgICCgoNCgUECQIDBhIErgILGAoNCgUECQIDARIErgIZIAoNCgUECQIDAxIErgIjJApFCgQECQIEEgSxAgI3GjcgSWRlbnRpZmllcyBpZiBjbGllbnQgc3RyZWFtcyBtdWx0aXBsZSBjbGllbnQgbWVzc2FnZXMKCg0KBQQJAgQEEgSxAgIKCg0KBQQJAgQFEgSxAgsPCg0KBQQJAgQBEgSxAhAgCg0KBQQJAgQDEgSxAiMkCg0KBQQJAgQIEgSxAiU2Cg0KBQQJAgQHEgSxAjA1CkUKBAQJAgUSBLMCAjcaNyBJZGVudGlmaWVzIGlmIHNlcnZlciBzdHJlYW1zIG11bHRpcGxlIHNlcnZlciBtZXNzYWdlcwoKDQoFBAkCBQQSBLMCAgoKDQoFBAkCBQUSBLMCCw8KDQoFBAkCBQESBLMCECAKDQoFBAkCBQMSBLMCIyQKDQoFBAkCBQgSBLMCJTYKDQoFBAkCBQcSBLMCMDUKrw4KAgQKEgbWAgDKAwEyTiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiBPcHRpb25zCjLQDSBFYWNoIG9mIHRoZSBkZWZpbml0aW9ucyBhYm92ZSBtYXkgaGF2ZSAib3B0aW9ucyIgYXR0YWNoZWQuICBUaGVzZSBhcmUKIGp1c3QgYW5ub3RhdGlvbnMgd2hpY2ggbWF5IGNhdXNlIGNvZGUgdG8gYmUgZ2VuZXJhdGVkIHNsaWdodGx5IGRpZmZlcmVudGx5CiBvciBtYXkgY29udGFpbiBoaW50cyBmb3IgY29kZSB0aGF0IG1hbmlwdWxhdGVzIHByb3RvY29sIG1lc3NhZ2VzLgoKIENsaWVudHMgbWF5IGRlZmluZSBjdXN0b20gb3B0aW9ucyBhcyBleHRlbnNpb25zIG9mIHRoZSAqT3B0aW9ucyBtZXNzYWdlcy4KIFRoZXNlIGV4dGVuc2lvbnMgbWF5IG5vdCB5ZXQgYmUga25vd24gYXQgcGFyc2luZyB0aW1lLCBzbyB0aGUgcGFyc2VyIGNhbm5vdAogc3RvcmUgdGhlIHZhbHVlcyBpbiB0aGVtLiAgSW5zdGVhZCBpdCBzdG9yZXMgdGhlbSBpbiBhIGZpZWxkIGluIHRoZSAqT3B0aW9ucwogbWVzc2FnZSBjYWxsZWQgdW5pbnRlcnByZXRlZF9vcHRpb24uIFRoaXMgZmllbGQgbXVzdCBoYXZlIHRoZSBzYW1lIG5hbWUKIGFjcm9zcyBhbGwgKk9wdGlvbnMgbWVzc2FnZXMuIFdlIHRoZW4gdXNlIHRoaXMgZmllbGQgdG8gcG9wdWxhdGUgdGhlCiBleHRlbnNpb25zIHdoZW4gd2UgYnVpbGQgYSBkZXNjcmlwdG9yLCBhdCB3aGljaCBwb2ludCBhbGwgcHJvdG9zIGhhdmUgYmVlbgogcGFyc2VkIGFuZCBzbyBhbGwgZXh0ZW5zaW9ucyBhcmUga25vd24uCgogRXh0ZW5zaW9uIG51bWJlcnMgZm9yIGN1c3RvbSBvcHRpb25zIG1heSBiZSBjaG9zZW4gYXMgZm9sbG93czoKICogRm9yIG9wdGlvbnMgd2hpY2ggd2lsbCBvbmx5IGJlIHVzZWQgd2l0aGluIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yCiAgIG9yZ2FuaXphdGlvbiwgb3IgZm9yIGV4cGVyaW1lbnRhbCBvcHRpb25zLCB1c2UgZmllbGQgbnVtYmVycyA1MDAwMAogICB0aHJvdWdoIDk5OTk5LiAgSXQgaXMgdXAgdG8geW91IHRvIGVuc3VyZSB0aGF0IHlvdSBkbyBub3QgdXNlIHRoZQogICBzYW1lIG51bWJlciBmb3IgbXVsdGlwbGUgb3B0aW9ucy4KICogRm9yIG9wdGlvbnMgd2hpY2ggd2lsbCBiZSBwdWJsaXNoZWQgYW5kIHVzZWQgcHVibGljbHkgYnkgbXVsdGlwbGUKICAgaW5kZXBlbmRlbnQgZW50aXRpZXMsIGUtbWFpbCBwcm90b2J1Zi1nbG9iYWwtZXh0ZW5zaW9uLXJlZ2lzdHJ5QGdvb2dsZS5jb20KICAgdG8gcmVzZXJ2ZSBleHRlbnNpb24gbnVtYmVycy4gU2ltcGx5IHByb3ZpZGUgeW91ciBwcm9qZWN0IG5hbWUgKGUuZy4KICAgT2JqZWN0aXZlLUMgcGx1Z2luKSBhbmQgeW91ciBwcm9qZWN0IHdlYnNpdGUgKGlmIGF2YWlsYWJsZSkgLS0gdGhlcmUncyBubwogICBuZWVkIHRvIGV4cGxhaW4gaG93IHlvdSBpbnRlbmQgdG8gdXNlIHRoZW0uIFVzdWFsbHkgeW91IG9ubHkgbmVlZCBvbmUKICAgZXh0ZW5zaW9uIG51bWJlci4gWW91IGNhbiBkZWNsYXJlIG11bHRpcGxlIG9wdGlvbnMgd2l0aCBvbmx5IG9uZSBleHRlbnNpb24KICAgbnVtYmVyIGJ5IHB1dHRpbmcgdGhlbSBpbiBhIHN1Yi1tZXNzYWdlLiBTZWUgdGhlIEN1c3RvbSBPcHRpb25zIHNlY3Rpb24gb2YKICAgdGhlIGRvY3MgZm9yIGV4YW1wbGVzOgogICBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzL2RvY3MvcHJvdG8jb3B0aW9ucwogICBJZiB0aGlzIHR1cm5zIG91dCB0byBiZSBwb3B1bGFyLCBhIHdlYiBzZXJ2aWNlIHdpbGwgYmUgc2V0IHVwCiAgIHRvIGF1dG9tYXRpY2FsbHkgYXNzaWduIG9wdGlvbiBudW1iZXJzLgoKCwoDBAoBEgTWAggTCvQBCgQECgIAEgTcAgIjGuUBIFNldHMgdGhlIEphdmEgcGFja2FnZSB3aGVyZSBjbGFzc2VzIGdlbmVyYXRlZCBmcm9tIHRoaXMgLnByb3RvIHdpbGwgYmUKIHBsYWNlZC4gIEJ5IGRlZmF1bHQsIHRoZSBwcm90byBwYWNrYWdlIGlzIHVzZWQsIGJ1dCB0aGlzIGlzIG9mdGVuCiBpbmFwcHJvcHJpYXRlIGJlY2F1c2UgcHJvdG8gcGFja2FnZXMgZG8gbm90IG5vcm1hbGx5IHN0YXJ0IHdpdGggYmFja3dhcmRzCiBkb21haW4gbmFtZXMuCgoNCgUECgIABBIE3AICCgoNCgUECgIABRIE3AILEQoNCgUECgIAARIE3AISHgoNCgUECgIAAxIE3AIhIgrxAgoEBAoCARIE4wICKxriAiBDb250cm9scyB0aGUgbmFtZSBvZiB0aGUgd3JhcHBlciBKYXZhIGNsYXNzIGdlbmVyYXRlZCBmb3IgdGhlIC5wcm90byBmaWxlLgogVGhhdCBjbGFzcyB3aWxsIGFsd2F5cyBjb250YWluIHRoZSAucHJvdG8gZmlsZSdzIGdldERlc2NyaXB0b3IoKSBtZXRob2QgYXMKIHdlbGwgYXMgYW55IHRvcC1sZXZlbCBleHRlbnNpb25zIGRlZmluZWQgaW4gdGhlIC5wcm90byBmaWxlLgogSWYgamF2YV9tdWx0aXBsZV9maWxlcyBpcyBkaXNhYmxlZCwgdGhlbiBhbGwgdGhlIG90aGVyIGNsYXNzZXMgZnJvbSB0aGUK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YXRlZCBmcm9tIHRoaXMgLnByb3RvIHdpbGwgYmUKIHBsYWNlZC4gSWYgb21pdHRlZCwgdGhlIEdvIHBhY2thZ2Ugd2lsbCBiZSBkZXJpdmVkIGZyb20gdGhlIGZvbGxvd2luZzoKICAgLSBUaGUgYmFzZW5hbWUgb2YgdGhlIHBhY2thZ2UgaW1wb3J0IHBhdGgsIGlmIHByb3ZpZGVkLgogICAtIE90aGVyd2lzZSwgdGhlIHBhY2thZ2Ugc3RhdGVtZW50IGluIHRoZSAucHJvdG8gZmlsZSwgaWYgcHJlc2VudC4KICAgLSBPdGhlcndpc2UsIHRoZSBiYXNlbmFtZSBvZiB0aGUgLnByb3RvIGZpbGUsIHdpdGhvdXQgZXh0ZW5zaW9uLgoKDQoFBAoCBgQSBIYDAgoKDQoFBAoCBgUSBIYDCxEKDQoFBAoCBgESBIYDEhwKDQoFBAoCBgMSBIYDHyEK1AQKBAQKAgcSBJIDAjsaxQQgU2hvdWxkIGdlbmVyaWMgc2VydmljZXMgYmUgZ2VuZXJhdGVkIGluIGVhY2ggbGFuZ3VhZ2U/ICAiR2VuZXJpYyIgc2VydmljZXMKIGFyZSBub3Qgc3BlY2lmaWMgdG8gYW55IHBhcnRpY3VsYXIgUlBDIHN5c3RlbS4gIFRoZXkgYXJlIGdlbmVyYXRlZCBieSB0aGUKIG1haW4gY29kZSBnZW5lcmF0b3JzIGluIGVhY2ggbGFuZ3VhZ2UgKHdpdGhvdXQgYWRkaXRpb25hbCBwbHVnaW5zKS4KIEdlbmVyaWMgc2VydmljZXMgd2VyZSB0aGUgb25seSBraW5kIG9mIHNlcnZpY2UgZ2VuZXJhdGlvbiBzdXBwb3J0ZWQgYnkKIGVhcmx5IHZlcnNpb25zIG9mIGdvb2dsZS5wcm90b2J1Zi4KCiBHZW5lcmljIHNlcnZpY2VzIGFyZSBub3cgY29uc2lkZXJlZCBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHVzaW5nIHBsdWdpbnMKIHRoYXQgZ2VuZXJhdGUgY29kZSBzcGVjaWZpYyB0byB5b3VyIHBhcnRpY3VsYXIgUlBDIHN5c3RlbS4gIFRoZXJlZm9yZSwKIHRoZXNlIGRlZmF1bHQgdG8gZmFsc2UuICBPbGQgY29kZSB3aGljaCBkZXBlbmRz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dHMgb25seQogaGF2ZSBleHRlbnNpb25zLgoKIEFsbCBleHRlbnNpb25zIG9mIHlvdXIgdHlwZSBtdXN0IGJlIHNpbmd1bGFyIG1lc3NhZ2VzOyBlLmcuIHRoZXkgY2Fubm90CiBiZSBpbnQzMnMsIGVudW1zLCBvciByZXBlYXRlZCBtZXNzYWdlcy4KCiBCZWNhdXNlIHRoaXMgaXMgYW4gb3B0aW9uLCB0aGUgYWJvdmUgdHdvIHJlc3RyaWN0aW9ucyBhcmUgbm90IGVuZm9yY2VkIGJ5CiB0aGUgcHJvdG9jb2wgY29tcGlsZXIuCgoNCgUECwIABBIE3wMCCgoNCgUECwIABRIE3wMLDwoNCgUECwIAARIE3wMQJwoNCgUECwIAAxIE3wMqKwoNCgUECwIACBIE3wMsPQoNCgUECwIABxIE3wM3PArrAQoEBAsCARIE5AMCRhrcASBEaXNhYmxlcyB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgc3RhbmRhcmQgImRlc2NyaXB0b3IoKSIgYWNjZXNzb3IsIHdoaWNoIGNhbgogY29uZmxpY3Qgd2l0aCBhIGZpZWxkIG9mIHRoZSBzYW1lIG5hbWUuICBUaGlzIGlzIG1lYW50IHRvIG1ha2UgbWlncmF0aW9uCiBmcm9tIHByb3RvMSBlYXNpZXI7IG5ldyBjb2RlIHNob3VsZCBhdm9pZCBmaWVsZHMgbmFtZWQgImRlc2NyaXB0b3IiLgoKDQoFBAsCAQQSBOQDAgoKDQoFBAsCAQUSBOQDCw8KDQoFBAsCAQESBOQDEC8KDQoFBAsCAQMSBOQDMjMKDQoFBAsCAQgSBOQDNEUKDQoFBAsCAQcSBOQDP0QK7gEKBAQLAgISBOoDAjEa3wEgSXMgdGhpcyBtZXNzYWdlIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgdGhlIG1lc3NhZ2UsIG9yIGl0IHdpbGwgYmUgY29tcGxldGVseSBpZ25vcmVkOyBpbiB0aGUgdmVyeSBsZWFzdCwKIHRoaXMgaXMgYSBmb3JtYWxpemF0aW9uIGZvciBkZXByZWNhdGluZyBtZXNzYWdlcy4KCg0KBQQLAgIEEgTqAwIKCg0KBQQLAgIFEgTqAwsPCg0KBQQLAgIBEgTqAxAaCg0KBQQLAgIDEgTqAx0eCg0KBQQLAgIIEgTqAx8wCg0KBQQLAgIHEgTqAyovCgsKAwQLCRIE7AMCEwoMCgQECwkAEgTsAwsMCg0KBQQLCQABEgTsAwsMCg0KBQQLCQACEgTsAwsMCgwKBAQLCQESBOwDDg8KDQoFBAsJAQESBOwDDg8KDQoFBAsJAQISBOwDDg8KDAoEBAsJAhIE7AMREgoNCgUECwkCARIE7AMREgoNCgUECwkCAhIE7AMREgqgBgoEBAsCAxIEgwQCHhqRBiBOT1RFOiBEbyBub3Qgc2V0IHRoZSBvcHRpb24gaW4gLnByb3RvIGZpbGVzLiBBbHdheXMgdXNlIHRoZSBtYXBzIHN5bnRheAogaW5zdGVhZC4gVGhlIG9wdGlvbiBzaG91bGQgb25seSBiZSBpbXBsaWNpdGx5IHNldCBieSB0aGUgcHJvdG8gY29tcGlsZXIKIHBhcnNlci4KCiBXaGV0aGVyIHRoZSBtZXNzYWdlIGlzIGFuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1hcCBlbnRyeSB0eXBlIGZvciB0aGUKIG1hcHMgZmllbGQuCgogRm9yIG1hcHMgZmllbGRzOgogICAgIG1hcDxLZXlUeXBlLCBWYWx1ZVR5cGU+IG1hcF9maWVsZCA9IDE7CiBUaGUgcGFyc2VkIGRlc2NyaXB0b3IgbG9va3MgbGlrZToKICAgICBtZXNzYWdlIE1hcEZpZWxkRW50cnkgewogICAgICAgICBvcHRpb24gbWFwX2VudHJ5ID0gdHJ1ZTsKICAgICAgICAgb3B0aW9uYWwgS2V5VHlwZSBrZXkgPSAxOwogICAgICAgICBvcHRpb25hbCBWYWx1ZVR5cGUgdmFsdWUgPSAyOwogICAgIH0KICAgICByZXBlYXRlZCBNYXBGaWVsZEVudHJ5IG1hcF9maWVsZCA9IDE7CgogSW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGdlbmVyYXRlIHRoZSBtYXBfZW50cnk9dHJ1ZSBtZXNzYWdlLCBidXQKIHVzZSBhIG5hdGl2ZSBtYXAgaW4gdGhlIHRhcmdldCBsYW5ndWFnZSB0byBob2xkIHRoZSBrZXlzIGFuZCB2YWx1ZXMuCiBUaGUgcmVmbGVjdGlvbiBBUElzIGluIHN1Y2ggaW1wbGVtZW50YXRpb25zIHN0aWxsIG5lZWQgdG8gd29yayBhcwogaWYgdGhlIGZpZWxkIGlzIGEgcmVwZWF0ZWQgbWVzc2FnZSBmaWVsZC4KCg0KBQQLAgMEEgSDBAIKCg0KBQQLAgMFEgSDBAsPCg0KBQQLAgMBEgSDBBAZCg0KBQQLAgMDEgSDBBwdCiQKAwQLCRIEhQQCDSIXIGphdmFsaXRlX3NlcmlhbGl6YWJsZQoKDAoEBAsJAxIEhQQLDAoNCgUECwkDARIEhQQLDAoNCgUECwkDAhIEhQQLDAofCgMECwkSBIYEAg0iEiBqYXZhbmFub19hc19saXRlCgoMCgQECwkEEgSGBAsMCg0KBQQLCQQBEgSGBAsMCg0KBQQLCQQCEgSGBAsMCuoDCgQECwIEEgSSBAJQGtsDIEVuYWJsZSB0aGUgbGVnYWN5IGhhbmRsaW5nIG9mIEpTT04gZmllbGQgbmFtZSBjb25mbGljdHMuICBUaGlzIGxvd2VyY2FzZXMKIGFuZCBzdHJpcHMgdW5kZXJzY29yZWQgZnJvbSB0aGUgZmllbGRzIGJlZm9yZSBjb21wYXJpc29uIGluIHByb3RvMyBvbmx5LgogVGhlIG5ldyBiZWhhdmlvciB0YWtlcyBganNvbl9uYW1lYCBpbnRvIGFjY291bnQgYW5kIGFwcGxpZXMgdG8gcHJvdG8yIGFzCiB3ZWxsLgoKIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBhcyBhIHRlbXBvcmFyeSBtZWFzdXJlIGFnYWluc3QgYnJva2VuIGJ1aWxkcyBkdWUKIHRvIHRoZSBjaGFuZ2UgaW4gYmVoYXZpb3IgZm9yIEpTT04gZmllbGQgbmFtZSBjb25mbGljdHMuCgogVE9ETyhiLzI2MTc1MDE5MCkgVGhpcyBpcyBsZWdhY3kgYmVoYXZpb3Igd2UgcGxhbiB0byByZW1vdmUgb25jZSBkb3duc3RyZWFtCiB0ZWFtcyBoYXZlIGhhZCB0aW1lIHRvIG1pZ3JhdGUuCgoNCgUECwIEBBIEkgQCCgoNCgUECwIEBRIEkgQLDwoNCgUECwIEARIEkgQQNgoNCgUECwIEAxIEkgQ5OwoNCgUECwIECBIEkgQ8TwoOCgYECwIECAMSBJIEPU4KTwoEBAsCBRIElQQCOhpBIFRoZSBwYXJzZXIgc3RvcmVzIG9wdGlvbnMgaXQgZG9lc24ndCByZWNvZ25pemUgaGVyZS4gU2VlIGFib3ZlLgoKDQoFBAsCBQQSBJUEAgoKDQoFBAsCBQYSBJUECx4KDQoFBAsCBQESBJUEHzMKDQoFBAsCBQMSBJUENjkKWgoDBAsFEgSYBAIZGk0gQ2xpZW50cyBjYW4gZGVmaW5lIGN1c3RvbSBvcHRpb25zIGluIGV4dGVuc2lvbnMgb2YgdGhpcyBtZXNzYWdlLiBTZWUgYWJvdmUuCgoMCgQECwUAEgSYBA0YCg0KBQQLBQABEgSYBA0RCg0KBQQLBQACEgSYBBUYCgwKAgQMEgabBACeBQEKCwoDBAwBEgSbBAgUCqMCCgQEDAIAEgSgBAIuGpQCIFRoZSBjdHlwZSBvcHRpb24gaW5zdHJ1Y3RzIHRoZSBDKysgY29kZSBnZW5lcmF0b3IgdG8gdXNlIGEgZGlmZmVyZW50CiByZXByZXNlbnRhdGlvbiBvZiB0aGUgZmllbGQgdGhhbiBpdCBub3JtYWxseSB3b3VsZC4gIFNlZSB0aGUgc3BlY2lmaWMKIG9wdGlvbnMgYmVsb3cuICBUaGlzIG9wdGlvbiBpcyBub3QgeWV0IGltcGxlbWVudGVkIGluIHRoZSBvcGVuIHNvdXJjZQogcmVsZWFzZSAtLSBzb3JyeSwgd2UnbGwgdHJ5IHRvIGluY2x1ZGUgaXQgaW4gYSBmdXR1cmUgdmVyc2lvbiEKCg0KBQQMAgAEEgSgBAIKCg0KBQQMAgAGEgSgBAsQCg0KBQQMAgABEgSgBBEWCg0KBQQMAgADEgSgBBkaCg0KBQQMAgAIEgSgBBstCg0KBQQMAgAHEgSgBCYsCg4KBAQMBAASBqEEAqgEAwoNCgUEDAQAARIEoQQHDAofCgYEDAQAAgASBKMEBA8aDyBEZWZhdWx0IG1vZGUuCgoPCgcEDAQAAgABEgSjBAQKCg8KBwQMBAACAAISBKMEDQ4KDgoGBAwEAAIBEgSlBAQNCg8KBwQMBAACAQESBKUEBAgKDwoHBAwEAAIBAhIEpQQLDAoOCgYEDAQAAgISBKcEBBUKDwoHBAwEAAICARIEpwQEEAoPCgcEDAQAAgICEgSnBBMUCtoCCgQEDAIBEgSuBAIbGssCIFRoZSBwYWNrZWQgb3B0aW9uIGNhbiBiZSBlbmFibGVkIGZvciByZXBlYXRlZCBwcmltaXRpdmUgZmllbGRzIHRvIGVuYWJsZQogYSBtb3JlIGVmZmljaWVudCByZXByZXNlbnRhdGlvbiBvbiB0aGUgd2lyZS4gUmF0aGVyIHRoYW4gcmVwZWF0ZWRseQogd3JpdGluZyB0aGUgdGFnIGFuZCB0eXBlIGZvciBlYWNoIGVsZW1lbnQsIHRoZSBlbnRpcmUgYXJyYXkgaXMgZW5jb2RlZCBhcwogYSBzaW5nbGUgbGVuZ3RoLWRlbGltaXRlZCBibG9iLiBJbiBwcm90bzMsIG9ubHkgZXhwbGljaXQgc2V0dGluZyBpdCB0bwogZmFsc2Ugd2lsbCBhdm9pZCB1c2luZyBwYWNrZWQgZW5jb2RpbmcuCgoNCgUEDAIBBBIErgQCCgoNCgUEDAIBBRIErgQLDwoNCgUEDAIBARIErgQQFgoNCgUEDAIBAxIErgQZGgqaBQoEBAwCAhIEuwQCMxqLBSBUaGUganN0eXBlIG9wdGlvbiBkZXRlcm1pbmVzIHRoZSBKYXZhU2NyaXB0IHR5cGUgdXNlZCBmb3IgdmFsdWVzIG9mIHRoZQogZmllbGQuICBUaGUgb3B0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGZvciA2NCBiaXQgaW50ZWdyYWwgYW5kIGZpeGVkIHR5cGVzCiAoaW50NjQsIHVpbnQ2NCwgc2ludDY0LCBmaXhlZDY0LCBzZml4ZWQ2NCkuICBBIGZpZWxkIHdpdGgganN0eXBlIEpTX1NUUklORwogaXMgcmVwcmVzZW50ZWQgYXMgSmF2YVNjcmlwdCBzdHJpbmcsIHdoaWNoIGF2b2lkcyBsb3NzIG9mIHByZWNpc2lvbiB0aGF0CiBjYW4gaGFwcGVuIHdoZW4gYSBsYXJnZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gYSBmbG9hdGluZyBwb2ludCBKYXZhU2NyaXB0LgogU3BlY2lmeWluZyBKU19OVU1CRVIgZm9yIHRoZSBqc3R5cGUgY2F1c2VzIHRoZSBnZW5lcmF0ZWQgSmF2YVNjcmlwdCBjb2RlIHRvCiB1c2UgdGhlIEphdmFTY3JpcHQgIm51bWJlciIgdHlwZS4gIFRoZSBiZWhhdmlvciBvZiB0aGUgZGVmYXVsdCBvcHRpb24KIEpTX05PUk1BTCBpcyBpbXBsZW1lbnRhdGlvbiBkZXBlbmRlbnQuCgogVGhpcyBvcHRpb24gaXMgYW4gZW51bSB0byBwZXJtaXQgYWRkaXRpb25hbCB0eXBlcyB0byBiZSBhZGRlZCwgZS5nLgogZ29vZy5tYXRoLkludGVnZXIuCgoNCgUEDAICBBIEuwQCCgoNCgUEDAICBhIEuwQLEQoNCgUEDAICARIEuwQSGAoNCgUEDAICAxIEuwQbHAoNCgUEDAICCBIEuwQdMgoNCgUEDAICBxIEuwQoMQoOCgQEDAQBEga8BALFBAMKDQoFBAwEAQESBLwEBw0KJwoGBAwEAQIAEgS+BAQSGhcgVXNlIHRoZSBkZWZhdWx0IHR5cGUuCgoPCgcEDAQBAgABEgS+BAQNCg8KBwQMBAECAAISBL4EEBEKKQoGBAwEAQIBEgTBBAQSGhkgVXNlIEphdmFTY3JpcHQgc3RyaW5ncy4KCg8KBwQMBAECAQESBMEEBA0KDwoHBAwEAQIBAhIEwQQQEQopCgYEDAQBAgISBMQEBBIaGSBVc2UgSmF2YVNjcmlwdCBudW1iZXJzLgoKDwoHBAwEAQICARIExAQEDQoPCgcEDAQBAgICEgTEBBARCv8NCgQEDAIDEgTlBAIrGvANIFNob3VsZCB0aGlzIGZpZWxkIGJlIHBhcnNlZCBsYXppbHk/ICBMYXp5IGFwcGxpZXMgb25seSB0byBtZXNzYWdlLXR5cGUKIGZpZWxkcy4gIEl0IG1lYW5zIHRoYXQgd2hlbiB0aGUgb3V0ZXIgbWVzc2FnZSBpcyBpbml0aWFsbHkgcGFyc2VkLCB0aGUKIGlubmVyIG1lc3NhZ2UncyBjb250ZW50cyB3aWxsIG5vdCBiZSBwYXJzZWQgYnV0IGluc3RlYWQgc3RvcmVkIGluIGVuY29kZWQKIGZvcm0uICBUaGUgaW5uZXIgbWVzc2FnZSB3aWxsIGFjdHVhbGx5IGJlIHBhcnNlZCB3aGVuIGl0IGlzIGZpcnN0IGFjY2Vzc2VkLgoKIFRoaXMgaXMgb25seSBhIGhpbnQuICBJbXBsZW1lbnRhdGlvbnMgYXJlIGZyZWUgdG8gY2hvb3NlIHdoZXRoZXIgdG8gdXNlCiBlYWdlciBvciBsYXp5IHBhcnNpbmcgcmVnYXJkbGVzcyBvZiB0aGUgdmFsdWUgb2YgdGhpcyBvcHRpb24uICBIb3dldmVyLAogc2V0dGluZyB0aGlzIG9wdGlvbiB0cnVlIHN1Z2dlc3RzIHRoYXQgdGhlIHByb3RvY29sIGF1dGhvciBiZWxpZXZlcyB0aGF0CiB1c2luZyBsYXp5IHBhcnNpbmcgb24gdGhpcyBmaWVsZCBpcyB3b3J0aCB0aGUgYWRkaXRpb25hbCBib29ra2VlcGluZwogb3ZlcmhlYWQgdHlwaWNhbGx5IG5lZWRlZCB0byBpbXBsZW1lbnQgaXQuCgogVGhpcyBvcHRpb24gZG9lcyBub3QgYWZmZWN0IHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIGFueSBnZW5lcmF0ZWQgY29kZTsKIGFsbCBtZXRob2Qgc2lnbmF0dXJlcyByZW1haW4gdGhlIHNhbWUuICBGdXJ0aGVybW9yZSwgdGhyZWFkLXNhZmV0eSBvZiB0aGUKIGludGVyZmFjZSBpcyBub3QgYWZmZWN0ZWQgYnkgdGhpcyBvcHRpb247IGNvbnN0IG1ldGhvZHMgcmVtYWluIHNhZmUgdG8KIGNhbGwgZnJvbSBtdWx0aXBsZSB0aHJlYWRzIGNvbmN1cnJlbnRseSwgd2hpbGUgbm9uLWNvbnN0IG1ldGhvZHMgY29udGludWUKIHRvIHJlcXVpcmUgZXhjbHVzaXZlIGFjY2Vzcy4KCiBOb3RlIHRoYXQgaW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGNoZWNrIHJlcXVpcmVkIGZpZWxkcyB3aXRoaW4KIGEgbGF6eSBzdWItbWVzc2FnZS4gIFRoYXQgaXMsIGNhbGxpbmcgSXNJbml0aWFsaXplZCgpIG9uIHRoZSBvdXRlciBtZXNzYWdlCiBtYXkgcmV0dXJuIHRydWUgZXZlbiBpZiB0aGUgaW5uZXIgbWVzc2FnZSBoYXMgbWlzc2luZyByZXF1aXJlZCBmaWVsZHMuCiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIG90aGVyd2lzZSB0aGUgaW5uZXIgbWVzc2FnZSB3b3VsZCBoYXZlIHRvIGJlCiBwYXJzZWQgaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUgY2hlY2ssIGRlZmVhdGluZyB0aGUgcHVycG9zZSBvZiBsYXp5CiBwYXJzaW5nLiAgQW4gaW1wbGVtZW50YXRpb24gd2hpY2ggY2hvb3NlcyBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzCiBtdXN0IGJlIGNvbnNpc3RlbnQgYWJvdXQgaXQuICBUaGF0IGlzLCBmb3IgYW55IHBhcnRpY3VsYXIgc3ViLW1lc3NhZ2UsIHRoZQogaW1wbGVtZW50YXRpb24gbXVzdCBlaXRoZXIgKmFsd2F5cyogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgb3IgKm5ldmVyKgogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgbWVzc2FnZSBoYXMKIGJlZW4gcGFyc2VkLgoKIEFzIG9mIE1heSAyMDIyLCBsYXp5IHZlcmlmaWVzIHRoZSBjb250ZW50cyBvZiB0aGUgYnl0ZSBzdHJlYW0gZHVyaW5nCiBwYXJzaW5nLiAgQW4gaW52YWxpZCBieXRlIHN0cmVhbSB3aWxsIGNhdXNlIHRoZSBvdmVyYWxsIHBhcnNpbmcgdG8gZmFpbC4KCg0KBQQMAgMEEgTlBAIKCg0KBQQMAgMFEgTlBAsPCg0KBQQMAgMBEgTlBBAUCg0KBQQMAgMDEgTlBBcYCg0KBQQMAgMIEgTlBBkqCg0KBQQMAgMHEgTlBCQpCq8BCgQEDAIEEgTqBAI3GqABIHVudmVyaWZpZWRfbGF6eSBkb2VzIG5vIGNvcnJlY3RuZXNzIGNoZWNrcyBvbiB0aGUgYnl0ZSBzdHJlYW0uIFRoaXMgc2hvdWxkCiBvbmx5IGJlIHVzZWQgd2hlcmUgbGF6eSB3aXRoIHZlcmlmaWNhdGlvbiBpcyBwcm9oaWJpdGl2ZSBmb3IgcGVyZm9ybWFuY2UKIHJlYXNvbnMuCgoNCgUEDAIEBBIE6gQCCgoNCgUEDAIEBRIE6gQLDwoNCgUEDAIEARIE6gQQHwoNCgUEDAIEAxIE6gQiJAoNCgUEDAIECBIE6gQlNgoNCgUEDAIE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BOQFAhkaTSBDbGllbnRzIGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuIFNlZSBhYm92ZS4KCgwKBAQQBQASBOQFDRgKDQoFBBAFAAESBOQFDREKDQoFBBAFAAISBOQFFRgKDAoCBBESBucFAIQGAQoLCgMEEQESBOcFCBUK1gMKBAQRAgASBPIFAjIa3AEgSXMgdGhpcyBtZXRob2QgZGVwcmVjYXRlZD8KIERlcGVuZGluZyBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtLCB0aGlzIGNhbiBlbWl0IERlcHJlY2F0ZWQgYW5ub3RhdGlvbnMKIGZvciB0aGUgbWV0aG9kLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkgbGVhc3QsCiB0aGlzIGlzIGEgZm9ybWFsaXphdGlvbiBmb3IgZGVwcmVjYXRpbmcgbWV0aG9kcy4KMugBIE5vdGU6ICBGaWVsZCBudW1iZXJzIDEgdGhyb3VnaCAzMiBhcmUgcmVzZXJ2ZWQgZm9yIEdvb2dsZSdzIGludGVybmFsIFJQQwogICBmcmFtZXdvcmsuICBXZSBhcG9sb2dpemUgZm9yIGhvYXJkaW5nIHRoZXNlIG51bWJlcnMgdG8gb3Vyc2VsdmVzLCBidXQKICAgd2Ugd2VyZSBhbHJlYWR5IHVzaW5nIHRoZW0gbG9uZyBiZWZvcmUgd2UgZGVjaWRlZCB0byByZWxlYXNlIFByb3RvY29sCiAgIEJ1ZmZlcnMuCgoNCgUEEQIABBIE8gUCCgoNCgUEEQIABRIE8gULDwoNCgUEEQIAARIE8gUQGgoNCgUEEQIAAxIE8gUdHwoNCgUEEQIACBIE8gUgMQoNCgUEEQIABxIE8gUrMArwAQoEBBEEABIG9wUC+wUDGt8BIElzIHRoaXMgbWV0aG9kIHNpZGUtZWZmZWN0LWZyZWUgKG9yIHNhZmUgaW4gSFRUUCBwYXJsYW5jZSksIG9yIGlkZW1wb3RlbnQsCiBvciBuZWl0aGVyPyBIVFRQIGJhc2VkIFJQQyBpbXBsZW1lbnRhdGlvbiBtYXkgY2hvb3NlIEdFVCB2ZXJiIGZvciBzYWZlCiBtZXRob2RzLCBhbmQg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dGF0aW9uIGdlbmVyYXRvcnMsIGFuZCBzaW1pbGFyCiB0b29scy4KCiBGb3IgZXhhbXBsZSwgc2F5IHdlIGhhdmUgYSBmaWxlIGxpa2U6CiAgIG1lc3NhZ2UgRm9vIHsKICAgICBvcHRpb25hbCBzdHJpbmcgZm9vID0gMTsKICAgfQogTGV0J3MgbG9vayBhdCBqdXN0IHRoZSBmaWVsZCBkZWZpbml0aW9uOgogICBvcHRpb25hbCBzdHJpbmcgZm9vID0gMTsKICAgXiAgICAgICBeXiAgICAgXl4gIF4gIF5eXgogICBhICAgICAgIGJjICAgICBkZSAgZiAgZ2hpCiBXZSBoYXZlIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgogICBzcGFuICAgcGF0aCAgICAgICAgICAgICAgIHJlcHJlc2VudHMKICAgW2EsaSkgIFsgNCwgMCwgMiwgMCBdICAgICBUaGUgd2hvbGUgZmllbGQgZGVmaW5pdGlvbi4KICAgW2EsYikgIFsgNCwgMCwgMiwgMCwgNCBdICBUaGUgbGFiZWwgKG9wdGlvbmFsKS4KICAgW2MsZCkgIFsgNCwgMCwgMiwgMCwgNSBdICBUaGUgdHlwZSAoc3RyaW5nKS4KICAgW2UsZikgIFsgNCwgMCwgMiwgMCwgMSBdICBUaGUgbmFtZSAoZm9vKS4KICAgW2csaCkgIFsgNCwgMCwgMiwgMCwgMyBdICBUaGUgbnVtYmVyICgxKS4KCiBOb3RlczoKIC0gQSBsb2NhdGlvbiBtYXkgcmVmZXIgdG8gYSByZXBlYXRlZCBmaWVsZCBpdHNlbGYgKGkuZS4gbm90IHRvIGFueQogICBwYXJ0aWN1bGFyIGluZGV4IHdpdGhpbiBpdCkuICBUaGlzIGlzIHVzZWQgd2hlbmV2ZXIgYSBzZXQgb2YgZWxlbWVudHMgYXJlCiAgIGxvZ2ljYWxseSBlbmNsb3NlZCBpbiBhIHNpbmdsZSBjb2RlIHNlZ21lbnQuICBGb3IgZXhhbXBsZSwgYW4gZW50aXJlCiAgIGV4dGVuZCBibG9jayAocG9zc2libHkgY29udGFpbmluZyBtdWx0aXBsZSBleHRlbnNpb24gZGVmaW5pdGlvbnMpIHdpbGwKICAgaGF2ZSBhbiBvdXRlciBsb2NhdGlvbiB3aG9zZSBwYXRoIHJlZmVycyB0byB0aGUgImV4dGVuc2lvbnMiIHJlcGVhdGVkCiAgIGZpZWxkIHdpdGhvdXQgYW4gaW5kZXguCiAtIE11bHRpcGxlIGxvY2F0aW9ucyBtYXkgaGF2ZSB0aGUgc2FtZSBwYXRoLiAgVGhpcyBoYXBwZW5zIHdoZW4gYSBzaW5nbGUKICAgbG9naWNhbCBkZWNsYXJhdGlvbiBpcyBzcHJlYWQgb3V0IGFjcm9zcyBtdWx0aXBsZSBwbGFjZXMuICBUaGUgbW9zdAogICBvYnZpb3VzIGV4YW1wbGUgaXMgdGhlICJleHRlbmQiIGJsb2NrIGFnYWluIC0tIHRoZXJlIG1heSBiZSBtdWx0aXBsZQogICBleHRlbmQgYmxvY2tzIGluIHRoZSBzYW1lIHNjb3BlLCBlYWNoIG9mIHdoaWNoIHdpbGwgaGF2ZSB0aGUgc2FtZSBwYXRoLgogLSBBIGxvY2F0aW9uJ3Mgc3BhbiBpcyBub3QgYWx3YXlzIGEgc3Vic2V0IG9mIGl0cyBwYXJlbnQncyBzcGFuLiAgRm9yCiAgIGV4YW1wbGUsIHRoZSAiZXh0ZW5kZWUiIG9mIGFuIGV4dGVuc2lvbiBkZWNsYXJhdGlvbiBhcHBlYXJzIGF0IHRoZQogICBiZWdpbm5pbmcgb2YgdGhlICJleHRlbmQiIGJsb2NrIGFuZCBpcyBzaGFyZWQgYnkgYWxsIGV4dGVuc2lvbnMgd2l0aGluCiAgIHRoZSBibG9jay4KIC0gSnVzdCBiZWNhdXNlIGEgbG9jYXRpb24ncyBzcGFuIGlzIGEgc3Vic2V0IG9mIHNvbWUgb3RoZXIgbG9jYXRpb24ncyBzcGFuCiAgIGRvZXMgbm90IG1lYW4gdGhhdCBpdCBpcyBhIGRlc2NlbmRhbnQuICBGb3IgZXhhbXBsZSwgYSAiZ3JvdXAiIGRlZmluZXMKICAgYm90aCBhIHR5cGUgYW5kIGEgZmllbGQgaW4gYSBzaW5nbGUgZGVjbGFyYXRpb24uICBUaHVzLCB0aGUgbG9jYXRpb25zCiAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHR5cGUgYW5kIGZpZWxkIGFuZCB0aGVpciBjb21wb25lbnRzIHdpbGwgb3ZlcmxhcC4KIC0gQ29kZSB3aGljaCB0cmllcyB0byBpbnRlcnByZXQgbG9jYXRpb25zIHNob3VsZCBwcm9iYWJseSBiZSBkZXNpZ25lZCB0bwogICBpZ25vcmUgdGhvc2UgdGhhdCBpdCBkb2Vzbid0IHVuZGVyc3RhbmQsIGFzIG1vcmUgdHlwZXMgb2YgbG9jYXRpb25zIGNvdWxkCiAgIGJlIHJlY29yZGVkIGluIHRoZSBmdXR1cmUuCgoNCgUEEwIABBIE0wYCCgoNCgUEEwIABhIE0wYLEwoNCgUEEwIAARIE0wYUHAoNCgUEEwIAAxIE0wYfIAoOCgQEEwMAEgbUBgKnBwMKDQoFBBMDAAESBNQGChIKiQcKBgQTAwACABIE7AYELBr4BiBJZGVudGlmaWVzIHdoaWNoIHBhcnQgb2YgdGhlIEZpbGVEZXNjcmlwdG9yUHJvdG8gd2FzIGRlZmluZWQgYXQgdGhpcwogbG9jYXRpb24uCgogRWFjaCBlbGVtZW50IGlzIGEgZmllbGQgbnVtYmVyIG9yIGFuIGluZGV4LiAgVGhleSBmb3JtIGEgcGF0aCBmcm9tCiB0aGUgcm9vdCBGaWxlRGVzY3JpcHRvclByb3RvIHRvIHRoZSBwbGFjZSB3aGVyZSB0aGUgZGVmaW5pdGlvbiBvY2N1cnMuCiBGb3IgZXhhbXBsZSwgdGhpcyBwYXRoOgogICBbIDQsIDMsIDIsIDcsIDEgXQogcmVmZXJzIHRvOgogICBmaWxlLm1lc3NhZ2VfdHlwZSgzKSAgLy8gNCwgMwogICAgICAgLmZpZWxkKDcpICAgICAgICAgLy8gMiwgNwogICAgICAgLm5hbWUoKSAgICAgICAgICAgLy8gMQogVGhpcyBpcyBiZWNhdXNlIEZpbGVEZXNjcmlwdG9yUHJvdG8ubWVzc2FnZV90eXBlIGhhcyBmaWVsZCBudW1iZXIgNDoKICAgcmVwZWF0ZWQgRGVzY3JpcHRvclByb3RvIG1lc3NhZ2VfdHlwZSA9IDQ7CiBhbmQgRGVzY3JpcHRvclByb3RvLmZpZWxkIGhhcyBmaWVsZCBudW1iZXIgMjoKICAgcmVwZWF0ZWQgRmllbGREZXNjcmlwdG9yUHJvdG8gZmllbGQgPSAyOwogYW5kIEZpZWxkRGVzY3JpcHRvclByb3RvLm5hbWUgaGFzIGZpZWxkIG51bWJlciAxOgogICBvcHRpb25hbCBzdHJpbmcgbmFtZSA9IDE7CgogVGh1cywgdGhlIGFib3ZlIHBhdGggZ2l2ZXMgdGhlIGxvY2F0aW9uIG9mIGEgZmllbGQgbmFtZS4gIElmIHdlIHJlbW92ZWQKIHRoZSBsYXN0IGVsZW1lbnQ6CiAgIFsgNCwgMywgMiwgNyBdCiB0aGlzIHBhdGggcmVmZXJzIHRvIHRoZSB3aG9sZSBmaWVsZCBkZWNsYXJhdGlvbiAoZnJvbSB0aGUgYmVnaW5uaW5nCiBvZiB0aGUgbGFiZWwgdG8gdGhlIHRlcm1pbmF0aW5nIHNlbWljb2xvbikuCgoPCgcEEwMAAgAEEgTsBgQMCg8KBwQTAwACAAUSBOwGDRIKDwoHBBMDAAIAARIE7AYTFwoPCgcEEwMAAgADEgTsBhobCg8KBwQTAwACAAgSBOwGHCsKEAoIBBMDAAIACAISBOwGHSoK0gIKBgQTAwACARIE8wYELBrBAiBBbHdheXMgaGFzIGV4YWN0bHkgdGhyZWUgb3IgZm91ciBlbGVtZW50czogc3RhcnQgbGluZSwgc3RhcnQgY29sdW1uLAogZW5kIGxpbmUgKG9wdGlvbmFsLCBvdGhlcndpc2UgYXNzdW1lZCBzYW1lIGFzIHN0YXJ0IGxpbmUpLCBlbmQgY29sdW1uLgogVGhlc2UgYXJlIHBhY2tlZCBpbnRvIGEgc2luZ2xlIGZpZWxkIGZvciBlZmZpY2llbmN5LiAgTm90ZSB0aGF0IGxpbmUKIGFuZCBjb2x1bW4gbnVtYmVycyBhcmUgemVyby1iYXNlZCAtLSB0eXBpY2FsbHkgeW91IHdpbGwgd2FudCB0byBhZGQKIDEgdG8gZWFjaCBiZWZvcmUgZGlzcGxheWluZyB0byBhIHVzZXIuCgoPCgcEEwMAAgEEEgTzBgQMCg8KBwQTAwACAQUSBPMGDRIKDwoHBBMDAAIBARIE8wYTFwoPCgcEEwMAAgEDEgTzBhobCg8KBwQTAwACAQgSBPMGHCsKEAoIBBMDAAIBCAISBPMGHSoKpQwKBgQTAwACAhIEpAcEKRqUDCBJZiB0aGlzIFNvdXJjZUNvZGVJbmZvIHJlcHJlc2VudHMgYSBjb21wbGV0ZSBkZWNsYXJhdGlvbiwgdGhlc2UgYXJlIGFueQogY29tbWVudHMgYXBwZWFyaW5nIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGRlY2xhcmF0aW9uIHdoaWNoIGFwcGVhciB0byBiZQogYXR0YWNoZWQgdG8gdGhlIGRlY2xhcmF0aW9uLgoKIEEgc2VyaWVzIG9mIGxpbmUgY29tbWVudHMgYXBwZWFyaW5nIG9uIGNvbnNlY3V0aXZlIGxpbmVzLCB3aXRoIG5vIG90aGVyCiB0b2tlbnMgYXBwZWFyaW5nIG9uIHRob3NlIGxpbmVzLCB3aWxsIGJlIHRyZWF0ZWQgYXMgYSBzaW5nbGUgY29tbWVudC4KCiBsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzIHdpbGwga2VlcCBwYXJhZ3JhcGhzIG9mIGNvbW1lbnRzIHRoYXQgYXBwZWFyCiBiZWZvcmUgKGJ1dCBub3QgY29ubmVjdGVkIHRvKSB0aGUgY3VycmVudCBlbGVtZW50LiBFYWNoIHBhcmFncmFwaCwKIHNlcGFyYXRlZCBieSBlbXB0eSBsaW5lcywgd2lsbCBiZSBvbmUgY29tbWVudCBlbGVtZW50IGluIHRoZSByZXBlYXRlZAogZmllbGQuCgogT25seSB0aGUgY29tbWVudCBjb250ZW50IGlzIHByb3ZpZGVkOyBjb21tZW50IG1hcmtlcnMgKGUuZy4gLy8pIGFyZQogc3RyaXBwZWQgb3V0LiAgRm9yIGJsb2NrIGNvbW1lbnRzLCBsZWFkaW5nIHdoaXRlc3BhY2UgYW5kIGFuIGFzdGVyaXNrCiB3aWxsIGJlIHN0cmlwcGVkIGZyb20gdGhlIGJlZ2lubmluZyBvZiBlYWNoIGxpbmUgb3RoZXIgdGhhbiB0aGUgZmlyc3QuCiBOZXdsaW5lcyBhcmUgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC4KCiBFeGFtcGxlczoKCiAgIG9wdGlvbmFsIGludDMyIGZvbyA9IDE7ICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGZvby4KICAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBiYXIuCiAgIG9wdGlvbmFsIGludDMyIGJhciA9IDI7CgogICBvcHRpb25hbCBzdHJpbmcgYmF6ID0gMzsKICAgLy8gQ29t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Y3NoYXJwL3Byb3Rvcy91bml0dGVzdF9jdXN0b21fb3B0aW9uc19wcm90bzMucHJvdG8SEXByb3RvYnVmX3VuaXR0ZXN0GiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90byLrAQocVGVzdE1lc3NhZ2VXaXRoQ3VzdG9tT3B0aW9ucxImCgZmaWVsZDEYASABKAlCDggBweDDHS3hdQoCAAAAUgZmaWVsZDESIQoLb25lb2ZfZmllbGQYAiABKAVIAFIKb25lb2ZGaWVsZCJTCgZBbkVudW0SFgoSQU5FTlVNX1VOU1BFQ0lGSUVEEAASDwoLQU5FTlVNX1ZBTDEQARIWCgtBTkVOVU1fVkFMMhACGgWwhvoFexoIxfbJHev8//86EAgA4OnCHcj//////////wFCGQoHQW5PbmVvZhIO+KzDHZ3//////////wEiGAoWQ3VzdG9tT3B0aW9uRm9vUmVxdWVzdCIZChdDdXN0b21PcHRpb25Gb29SZXNwb25zZSIeChxDdXN0b21PcHRpb25Gb29DbGllbnRNZXNzYWdlIh4KHEN1c3RvbU9wdGlvbkZvb1NlcnZlck1lc3NhZ2UijwEKGkR1bW15TWVzc2FnZUNvbnRhaW5pbmdFbnVtInEKDFRlc3RFbnVtVHlwZRIgChxURVNUX09QVElPTl9FTlVNX1VOU1BFQ0lGSUVEEAASGgoWVEVTVF9PUFRJT05fRU5VTV9UWVBFMRAWEiMKFlRFU1RfT1BUSU9OX0VOVU1fVFlQRTIQ6f//////////ASIhCh9EdW1teU1lc3NhZ2VJbnZhbGlkQXNPcHRpb25UeXBlIooBChxDdXN0b21PcHRpb25NaW5JbnRlZ2VyVmFsdWVzOmqZ1qgdAAAAAAAAAICtja8dAAAAgJHurx0AAAAAAAAAAJ31rx0AAAAA+JewHf///////////wGAxLAd/////w/49bAdAICTsh0AsLyyHYCAgICAgICAgAHoxrIdgICAgPj/////AdDesh0AIpEBChxDdXN0b21PcHRpb25NYXhJbnRlZ2VyVmFsdWVzOnGZ1qgd/////////3+tja8d////f5Hurx3//////////531rx3/////+JewHf7//////////wGAxLAd/v///w/49bAd////////////AYCTsh3/////D7C8sh3//////////3/oxrId/////wfQ3rIdASJuChdDdXN0b21PcHRpb25PdGhlclZhbHVlczpTiNmiHen//////////wGy2aIdC0hlbGxvAFdvcmxkqtyiHQ5IZWxsbywgIldvcmxkIuncoh37WYxCysDzP/Xfox3nh0VB6MayHZz//////////wEiNAocU2V0dGluZ1JlYWxzRnJvbVBvc2l0aXZlSW50czoU6dyiHQAAAAAAQGNA9d+jHQAAQEEiNAocU2V0dGluZ1JlYWxzRnJvbU5lZ2F0aXZlSW50czoU6dyiHQAAAAAAQGPA9d+jHQAAQMEiYgoSQ29tcGxleE9wdGlvblR5cGUxEhAKA2ZvbxgBIAEoBVIDZm9vEhIKBGZvbzIYAiABKAVSBGZvbzISEgoEZm9vMxgDIAEoBVIEZm9vMxISCgRmb280GAQgAygFUgRmb280Iq0DChJDb21wbGV4T3B0aW9uVHlwZTISNwoDYmFyGAEgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUxUgNiYXISEAoDYmF6GAIgASgFUgNiYXoSTAoEZnJlZBgDIAEoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMi5Db21wbGV4T3B0aW9uVHlwZTRSBGZyZWQSUAoGYmFybmV5GAQgAygLMjgucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUyLkNvbXBsZXhPcHRpb25UeXBlNFIGYmFybmV5GqsBChJDb21wbGV4T3B0aW9uVHlwZTQSFAoFd2FsZG8YASABKAVSBXdhbGRvMn8KDGNvbXBsZXhfb3B0NBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiK9dEDIAEoCzI4LnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMi5Db21wbGV4T3B0aW9uVHlwZTRSC2NvbXBsZXhPcHQ0IiYKEkNvbXBsZXhPcHRpb25UeXBlMxIQCgNxdXgYASABKAVSA3F1eCJOChVWYXJpb3VzQ29tcGxleE9wdGlvbnM6NdKojx0DCLMP+t6QHQIICar9kB0WCgMI5wUQ2wcaAwjBAiICCGUiAwjUAaLilR0GCCoiAmNYIlcKCUFnZ3JlZ2F0ZRIMCgFpGAEgASgFUgFpEgwKAXMYAiABKAlSAXMSLgoDc3ViGAMgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgNzdWIiZAoQQWdncmVnYXRlTWVzc2FnZRI0CglmaWVsZG5hbWUYASABKAVCFvKhhzsREg9GaWVsZEFubm90YXRpb25SCWZpZWxkbmFtZToawtGGOxUIZRIRTWVzc2FnZUFubm90YXRpb24ipAEKEE5lc3RlZE9wdGlvblR5cGUaSAoNTmVzdGVkTWVzc2FnZRIvCgxuZXN0ZWRfZmllbGQYASABKAVCDMHgwx3qAwAAAAAAAFILbmVzdGVkRmllbGQ6BuDpwh3pByJGCgpOZXN0ZWRFbnVtEg8KC1VOU1BFQ0lGSUVEEAASHQoRTkVTVEVEX0VOVU1fVkFMVUUQARoGsIb6BewHGgjF9skd6wMAACpSCgpNZXRob2RPcHQxEhoKFk1FVEhPRE9QVDFfVU5TUEVDSUZJRUQQABITCg9NRVRIT0RPUFQxX1ZBTDEQARITCg9NRVRIT0RPUFQxX1ZBTDIQAipeCg1BZ2dyZWdhdGVFbnVtEg8KC1VOU1BFQ0lGSUVEEAASJQoFVkFMVUUQARoayvyJOxUSE0VudW1WYWx1ZUFubm90YXRpb24aFZKViDsQEg5FbnVtQW5ub3RhdGlvbjKOAQocVGVzdFNlcnZpY2VXaXRoQ3VzdG9tT3B0aW9ucxJjCgNGb28SKS5wcm90b2J1Zl91bml0dGVzdC5DdXN0b21PcHRpb25Gb29SZXF1ZXN0GioucHJvdG9idWZfdW5pdHRlc3QuQ3VzdG9tT3B0aW9uRm9vUmVzcG9uc2UiBeD6jB4CGgmQsose09uAy0kymQEKEEFnZ3JlZ2F0ZVNlcnZpY2USawoGTWV0aG9kEiMucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlTWVzc2FnZRojLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZU1lc3NhZ2UiF8rIljsSEhBNZXRob2RBbm5vdGF0aW9uGhjK+447ExIRU2VydmljZUFubm90YXRpb246PAoJZmlsZV9vcHQxEhwuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zGI6d2AMgASgEUghmaWxlT3B0MTpFCgxtZXNzYWdlX29wdDESHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYnK3YAyABKAVSC21lc3NhZ2VPcHQxOj8KCmZpZWxkX29wdDESHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGIi82AMgASgGUglmaWVsZE9wdDE6PwoKb25lb2Zfb3B0MRIdLmdvb2dsZS5wcm90b2J1Zi5PbmVvZk9wdGlvbnMYz7XYAyABKAVSCW9uZW9mT3B0MTo8CgllbnVtX29wdDESHC5nb29nbGUucHJvdG9idWYuRW51bU9wdGlvbnMY6J7ZAyABKA9SCGVudW1PcHQxOksKD2VudW1fdmFsdWVfb3B0MRIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zGOagXyABKAVSDWVudW1WYWx1ZU9wdDE6RQoMc2VydmljZV9vcHQxEh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zGKK24QMgASgSUgtzZXJ2aWNlT3B0MTphCgttZXRob2Rfb3B0MRIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGKzP4QMgASgOMh0ucHJvdG9idWZfdW5pdHRlc3QuTWV0aG9kT3B0MVIKbWV0aG9kT3B0MTo9Cghib29sX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjqq9YDIAEoCFIHYm9vbE9wdDo/CglpbnQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY7ajWAyABKAVSCGludDMyT3B0Oj8KCWludDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjGp9YDIAEoA1IIaW50NjRPcHQ6QQoKdWludDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiwotYDIAEoDVIJdWludDMyT3B0OkEKCnVpbnQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY347WAyABKARSCXVpbnQ2NE9wdDpBCgpzaW50MzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGMCI1gMgASgRUglzaW50MzJPcHQ6QQoKc2ludDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxj/gtYDIAEoElIJc2ludDY0T3B0OkMKC2ZpeGVkMzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGNP+1QMgASgHUgpmaXhlZDMyT3B0OkMKC2ZpeGVkNjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGOL91QMgASgGUgpmaXhlZDY0T3B0OkUKDHNmaXhlZDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjV8dUDIAEoD1ILc2ZpeGVkMzJPcHQ6RQoMc2ZpeGVkNjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGOOK1QMgASgQUgtzZml4ZWQ2NE9wdDo/CglmbG9hdF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY/rvUAyABKAJSCGZsb2F0T3B0OkEKCmRvdWJsZV9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYzavUAyABKAFSCWRvdWJsZU9wdDpBCgpzdHJpbmdfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGMWr1AMgASgJUglzdHJpbmdPcHQ6PwoJYnl0ZXNfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGJar1AMgASgMUghieXRlc09wdDp5CghlbnVtX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiRq9QDIAEoDjI6LnByb3RvYnVmX3VuaXR0ZXN0LkR1bW15TWVzc2FnZUNvbnRhaW5pbmdFbnVtLlRlc3RFbnVtVHlwZVIHZW51bU9wdDqAAQoQbWVzc2FnZV90eXBlX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiv8tMDIAEoCzIyLnByb3RvYnVmX3VuaXR0ZXN0LkR1bW15TWVzc2FnZUludmFsaWRBc09wdGlvblR5cGVSDm1lc3NhZ2VUeXBlT3B0OmwKDGNvbXBsZXhfb3B0MRIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxik3NIDIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMVILY29tcGxleE9wdDE6bAoMY29tcGxleF9vcHQyEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGNWP0gMgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUyUgtjb21wbGV4T3B0MjpsCgxjb21wbGV4X29wdDMSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY74vSAyABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTNSC2NvbXBsZXhPcHQzOlcKB2ZpbGVvcHQSHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMYz92wByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSB2ZpbGVvcHQ6WAoGbXNnb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGJjqsAcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgZtc2dvcHQ6WgoIZmllbGRvcHQSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGJ70sAcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUghmaWVsZG9wdDpXCgdlbnVtb3B0EhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zGNKCsQcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgdlbnVtb3B0OmIKCmVudW12YWxvcHQSIS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlT3B0aW9ucxjJn7EHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIKZW51bXZhbG9wdDpgCgpzZXJ2aWNlb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zGLnvsQcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgpzZXJ2aWNlb3B0Ol0KCW1ldGhvZG9wdBIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGInpsgcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgltZXRob2RvcHRCVaoCGlVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9z8OjBHeqtwOUk+uyFOyoIZBIORmlsZUFubm90YXRpb24aFhIUTmVzdGVkRmlsZUFubm90YXRpb25KuVEKBxIFKwDnAgEK9hAKAQwSAysAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtMBIEF1dGhvcjogYmVuanlAZ29vZ2xlLmNvbSAoQmVuankgV2VpbmJlcmdlcikKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB1c2VkIHRvIHRlc3QgdGhlICJjdXN0b20gb3B0aW9ucyIgZmVhdHVyZSBvZiBnb29nbGUucHJvdG9idWYuCjLRAiBUaGlzIGZpbGUgaXMgYmFzZWQgb24gdW5pdHRlc3RfY3VzdG9tX29wdGlvbnMucHJvdG8gaW4KIHNyYy9nb29nbGUvcHJvdG9idWYsIGJ1dCBpcyBtb2RpZmllZCBmb3IgcHJvdG8zLiBJdCBjb3VsZAogcG90ZW50aWFsbHkgYmUgbW92ZWQgaW50byBzcmMvZ29vZ2xlL3Byb3RvYnVmLCBidXQgY3VycmVudGx5IEMjCiBpcyB0aGUgb25seSBsYW5ndWFnZSB0aGF0IHJlYWxseSBuZWVkcyBpdCwgYXMgd2UgZG9uJ3Qgc3VwcG9ydAogcHJvdG8yIHN5bnRheC4gSXQncyBjdXQgZG93biBzaWduaWZpY2FudGx5IGFzIHByb3RvMyBvbmx5IHN1cHBvcnRzCiBleHRlbnNpb25zIGZvciBvcHRpb25zLgoKCAoBCBIDLgAgCjUKBQiOndgDEgMuACAaJyBBIGN1c3RvbSBmaWxlIG9wdGlvbiAoZGVmaW5lZCBiZWxvdykuCgoJCgIDABIDMAAqCqABCgECEgM0ABoalQEgV2UgZG9uJ3QgcHV0IHRoaXMgaW4gYSBwYWNrYWdlIHdpdGhpbiBwcm90bzIgYmVjYXVzZSB3ZSBuZWVkIHRvIG1ha2Ugc3VyZQogdGhhdCB0aGUgZ2VuZXJhdGVkIGNvZGUgZG9lc24ndCBkZXBlbmQgb24gYmVpbmcgaW4gdGhlIHByb3RvMiBuYW1lc3BhY2UuCgoICgEIEgM1ADcKCQoCCCUSAzUANwo+CgEHEgQ5ADsBMjMgU29tZSBzaW1wbGUgdGVzdCBjdXN0b20gb3B0aW9ucyBvZiB2YXJpb3VzIHR5cGVzLgoKCQoCBwASAzoCHQoKCgMHAAISAzkHIgoKCgMHAAUSAzoCCAoKCgMHAAESAzoJEgoKCgMHAAMS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ZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMiggQXV0aG9yOiBsaXVqaXNpQGdvb2dsZS5jb20gKFBoZXJsIExpdSkKCggKAQISAyIAKAoICgEIEgMkAD4KCQoCCCUSAyQAPgoKCgIEABIEJgAoAQoKCgMEAAESAyYIGwoLCgQEAAIAEgMnAhcKDAoFBAACAAQSAycCCgoMCgUEAAIABRIDJwsQCgwKBQQAAgABEgMnERIKDAoFBAACAAMSAycVFgr5FgojY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9pbXBvcnQucHJvdG8SH3Byb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIaKmNzaGFycC9wcm90b3MvdW5pdHRlc3RfaW1wb3J0X3B1YmxpYy5wcm90byIdCg1JbXBvcnRNZXNzYWdlEgwKAWQYASABKAVSAWQqPAoKSW1wb3J0RW51bRIOCgpJTVBPUlRfRk9PEAcSDgoKSU1QT1JUX0JBUhAIEg4KCklNUE9SVF9CQVoQCSoxChBJbXBvcnRFbnVtRm9yTWFwEgsKB1VOS05PV04QABIHCgNGT08QARIHCgNCQVIQAkIpSAH4AQGqAiFHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvcy5Qcm90bzJKxxQKBhIEJABCAQqYDgoBDBIDJAASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoyyQEgQXV0aG9yOiBrZW50b25AZ29vZ2xlLmNvbSAoS2VudG9uIFZhcmRhKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogQSBwcm90byBmaWxlIHdoaWNoIGlzIGltcG9ydGVkIGJ5IHVuaXR0ZXN0LnByb3RvIHRvIHRlc3QgaW1wb3J0aW5nLgoK9QEKAQISAyoAKBrqASBXZSBkb24ndCBwdXQgdGhpcyBpbiBhIHBhY2thZ2Ugd2l0aGluIHByb3RvMiBiZWNhdXNlIHdlIG5lZWQgdG8gbWFrZSBzdXJlCiB0aGF0IHRoZSBnZW5lcmF0ZWQgY29kZSBkb2Vzbid0IGRlcGVuZCBvbiBiZWluZyBpbiB0aGUgcHJvdG8yIG5hbWVzcGFjZS4KIEluIHRlc3RfdXRpbC5oIHdlIGRvCiAidXNpbmcgbmFtZXNwYWNlIHVuaXR0ZXN0X2ltcG9ydCA9IHByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydCIuCgoICgEIEgMsABwKCQoCCAkSAywAHAoICgEIEgMtAB8KCQoCCB8SAy0AHwoICgEIEgMuAD4KCQoCCCUSAy4APgofCgIDABIDMQA7GhQgVGVzdCBwdWJsaWMgaW1wb3J0CgoJCgIKABIDMQcNCgoKAgQAEgQzADUBCgoKAwQAARIDMwgVCgsKBAQAAgASAzQCFwoMCgUEAAIABBIDNAIKCgwKBQQAAgAFEgM0CxAKDAoFBAACAAESAzQREgoMCgUEAAIAAxIDNBUWCgoKAgUAEgQ3ADsBCgoKAwUAARIDNwUPCgsKBAUAAgASAzgCEQoMCgUFAAIAARIDOAIMCgwKBQUAAgACEgM4DxAKCwoEBQACARIDOQIRCgwKBQUAAgEBEgM5AgwKDAoFBQACAQISAzkPEAoLCgQFAAICEgM6AhEKDAoFBQACAgESAzoCDAoMCgUFAAICAhIDOg8QCkgKAgUBEgQ+AEIBGjwgVG8gdXNlIGFuIGVudW0gaW4gYSBtYXAsIGl0IG11c3QgaGFzIHRoZSBmaXJzdCB2YWx1ZSBhcyAwLgoKCgoDBQEBEgM+BRUKCwoEBQECABIDPwIOCgwKBQUBAgABEgM/AgkKDAoFBQECAAISAz8MDQoLCgQFAQIBEgNAAgoKDAoFBQECAQESA0ACBQoMCgUFAQIBAhIDQAgJCgsKBAUBAgISA0ECCgoMCgUFAQICARIDQQIFCgwKBQUBAgICEgNBCAlQAAql0wUKHGNzaGFycC9wcm90b3MvdW5pdHRlc3QucHJvdG8SGHByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMhojY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9pbXBvcnQucHJvdG8ikSQKDFRlc3RBbGxUeXBlcxIlCg5vcHRpb25hbF9pbnQzMhgBIAEoBVINb3B0aW9uYWxJbnQzMhIlCg5vcHRpb25hbF9pbnQ2NBgCIAEoA1INb3B0aW9uYWxJbnQ2NBInCg9vcHRpb25hbF91aW50MzIYAyABKA1SDm9wdGlvbmFsVWludDMyEicKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBFIOb3B0aW9uYWxVaW50NjQSJwoPb3B0aW9uYWxfc2ludDMyGAUgASgRUg5vcHRpb25hbFNpbnQzMhInCg9vcHRpb25hbF9zaW50NjQYBiABKBJSDm9wdGlvbmFsU2ludDY0EikKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdSD29wdGlvbmFsRml4ZWQzMhIpChBvcHRpb25hbF9maXhlZDY0GAggASgGUg9vcHRpb25hbEZpeGVkNjQSKwoRb3B0aW9uYWxfc2ZpeGVkMzIYCSABKA9SEG9wdGlvbmFsU2ZpeGVkMzISKwoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBSEG9wdGlvbmFsU2ZpeGVkNjQSJQoOb3B0aW9uYWxfZmxvYXQYCyABKAJSDW9wdGlvbmFsRmxvYXQSJwoPb3B0aW9uYWxfZG91YmxlGAwgASgBUg5vcHRpb25hbERvdWJsZRIjCg1vcHRpb25hbF9ib29sGA0gASgIUgxvcHRpb25hbEJvb2wSJwoPb3B0aW9uYWxfc3RyaW5nGA4gASgJUg5vcHRpb25hbFN0cmluZxIlCg5vcHRpb25hbF9ieXRlcxgPIAEoDFINb3B0aW9uYWxCeXRlcxJaCg1vcHRpb25hbGdyb3VwGBAgASgKMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwEmwKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2USYgoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUhZvcHRpb25hbEZvcmVpZ25NZXNzYWdlEmYKF29wdGlvbmFsX2ltcG9ydF9tZXNzYWdlGBQgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRNZXNzYWdlUhVvcHRpb25hbEltcG9ydE1lc3NhZ2USYwoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEm9wdGlvbmFsTmVzdGVkRW51bRJZChVvcHRpb25hbF9mb3JlaWduX2VudW0YFiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SE29wdGlvbmFsRm9yZWlnbkVudW0SXQoUb3B0aW9uYWxfaW1wb3J0X2VudW0YFyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW1SEm9wdGlvbmFsSW1wb3J0RW51bRI2ChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCUhNvcHRpb25hbFN0cmluZ1BpZWNlEicKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBUgxvcHRpb25hbENvcmQSeQoeb3B0aW9uYWxfcHVibGljX2ltcG9ydF9tZXNzYWdlGBogASgLMjQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5QdWJsaWNJbXBvcnRNZXNzYWdlUhtvcHRpb25hbFB1YmxpY0ltcG9ydE1lc3NhZ2USbAoVb3B0aW9uYWxfbGF6eV9tZXNzYWdlGBsgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVITb3B0aW9uYWxMYXp5TWVzc2FnZRIlCg5yZXBlYXRlZF9pbnQzMhgfIAMoBVINcmVwZWF0ZWRJbnQzMhIlCg5yZXBlYXRlZF9pbnQ2NBggIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg9yZXBlYXRlZF91aW50MzIYISADKA1SDnJlcGVhdGVkVWludDMyEicKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBFIOcmVwZWF0ZWRVaW50NjQSJwoPcmVwZWF0ZWRfc2ludDMyGCMgAygRUg5yZXBlYXRlZFNpbnQzMhInCg9yZXBlYXRlZF9zaW50NjQYJCADKBJSDnJlcGVhdGVkU2ludDY0EikKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAdSD3JlcGVhdGVkRml4ZWQzMhIpChByZXBlYXRlZF9maXhlZDY0GCYgAygGUg9yZXBlYXRlZEZpeGVkNjQSKwoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA9SEHJlcGVhdGVkU2ZpeGVkMzISKwoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBBSEHJlcGVhdGVkU2ZpeGVkNjQSJQoOcmVwZWF0ZWRfZmxvYXQYKSADKAJSDXJlcGVhdGVkRmxvYXQSJwoPcmVwZWF0ZWRfZG91YmxlGCogAygBUg5yZXBlYXRlZERvdWJsZRIjCg1yZXBlYXRlZF9ib29sGCsgAygIUgxyZXBlYXRlZEJvb2wSJwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJUg5yZXBlYXRlZFN0cmluZxIlCg5yZXBlYXRlZF9ieXRlcxgtIAMoDFINcmVwZWF0ZWRCeXRlcxJaCg1yZXBlYXRlZGdyb3VwGC4gAygKMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5SZXBlYXRlZEdyb3VwUg1yZXBlYXRlZGdyb3VwEmwKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUhVyZXBlYXRlZE5lc3RlZE1lc3NhZ2USYgoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEmYKF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMi4ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRNZXNzYWdlUhVyZXBlYXRlZEltcG9ydE1lc3NhZ2USYwoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJZChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SE3JlcGVhdGVkRm9yZWlnbkVudW0SXQoUcmVwZWF0ZWRfaW1wb3J0X2VudW0YNSADKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW1SEnJlcGVhdGVkSW1wb3J0RW51bRI2ChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCUhNyZXBlYXRlZFN0cmluZ1BpZWNlEicKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBUgxyZXBlYXRlZENvcmQSbAoVcmVwZWF0ZWRfbGF6eV9tZXNzYWdlGDkgAygLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVITcmVwZWF0ZWRMYXp5TWVzc2FnZRInCg1kZWZhdWx0X2ludDMyGD0gASgFOgI0MVIMZGVmYXVsdEludDMyEicKDWRlZmF1bHRfaW50NjQYPiABKAM6AjQyUgxkZWZhdWx0SW50NjQSKQoOZGVmYXVsdF91aW50MzIYPyABKA06AjQzUg1kZWZhdWx0VWludDMyEikKDmRlZmF1bHRfdWludDY0GEAgASgEOgI0NFINZGVmYXVsdFVpbnQ2NBIqCg5kZWZhdWx0X3NpbnQzMhhBIAEoEToDLTQ1Ug1kZWZhdWx0U2ludDMyEikKDmRlZmF1bHRfc2ludDY0GEIgASgSOgI0NlINZGVmYXVsdFNpbnQ2NBIrCg9kZWZhdWx0X2ZpeGVkMzIYQyABKAc6AjQ3Ug5kZWZhdWx0Rml4ZWQzMhIrCg9kZWZhdWx0X2ZpeGVkNjQYRCABKAY6AjQ4Ug5kZWZhdWx0Rml4ZWQ2NBItChBkZWZhdWx0X3NmaXhlZDMyGEUgASgPOgI0OVIPZGVmYXVsdFNmaXhlZDMyEi4KEGRlZmF1bHRfc2ZpeGVkNjQYRiABKBA6Ay01MFIPZGVmYXVsdFNmaXhlZDY0EikKDWRlZmF1bHRfZmxvYXQYRyABKAI6BDUxLjVSDGRlZmF1bHRGbG9hdBIsCg5kZWZhdWx0X2RvdWJsZRhIIAEoAToFNTIwMDBSDWRlZmF1bHREb3VibGUSJwoMZGVmYXVsdF9ib29sGEkgASgIOgR0cnVlUgtkZWZhdWx0Qm9vbBIsCg5kZWZhdWx0X3N0cmluZxhKIAEoCToFaGVsbG9SDWRlZmF1bHRTdHJpbmcSKgoNZGVmYXVsdF9ieXRlcxhLIAEoDDoFd29ybGRSDGRlZmF1bHRCeXRlcxJmChNkZWZhdWx0X25lc3RlZF9lbnVtGFEgASgOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtOgNCQVJSEWRlZmF1bHROZXN0ZWRFbnVtEmQKFGRlZmF1bHRfZm9yZWlnbl9lbnVtGFIgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtOgtGT1JFSUdOX0JBUlISZGVmYXVsdEZvcmVpZ25FbnVtEmcKE2RlZmF1bHRfaW1wb3J0X2VudW0YUyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW06CklNUE9SVF9CQVJSEWRlZmF1bHRJbXBvcnRFbnVtEjkKFGRlZmF1bHRfc3RyaW5nX3BpZWNlGFQgASgJOgNhYmNCAggCUhJkZWZhdWx0U3RyaW5nUGllY2USKgoMZGVmYXVsdF9jb3JkGFUgASgJOgMxMjNCAggBUgtkZWZhdWx0Q29yZBIjCgxvbmVvZl91aW50MzIYbyABKA1IAFILb25lb2ZVaW50MzISaAoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzGh8KDU5lc3RlZE1lc3NhZ2USDgoCYmIYASABKAVSAmJiGh0KDU9wdGlvbmFsR3JvdXASDAoBYRgRIAEoBVIBYRodCg1SZXBlYXRlZEdyb3VwEgwKAWEYLyABKAVSAWEiOQoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAxIQCgNORUcQ////////////AUINCgtvbmVvZl9maWVsZCLvAQoSTmVzdGVkVGVzdEFsbFR5cGVzEkIKBWNoaWxkGAEgASgLMiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLk5lc3RlZFRlc3RBbGxUeXBlc1IFY2hpbGQSQAoHcGF5bG9hZBgCIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSB3BheWxvYWQSUwoOcmVwZWF0ZWRfY2hpbGQYAyADKAsyLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuTmVzdGVkVGVzdEFsbFR5cGVzUg1yZXBlYXRlZENoaWxkIpYBChRUZXN0RGVwcmVjYXRlZEZpZWxkcxItChBkZXByZWNhdGVkX2ludDMyGAEgASgFQgIYAVIPZGVwcmVjYXRlZEludDMyEj8KGWRlcHJlY2F0ZWRfaW50MzJfaW5fb25lb2YYAiABKAVCAhgBSABSFmRlcHJlY2F0ZWRJbnQzMkluT25lb2ZCDgoMb25lb2ZfZmllbGRzIhsKFVRlc3REZXByZWNhdGVkTWVzc2FnZToCGAEiLAoORm9yZWlnbk1lc3NhZ2USDAoBYxgBIAEoBVIBYxIMCgFkGAIgASgFUgFkIjAKElRlc3RSZXNlcnZlZEZpZWxkc0oECAIQA0oECA8QEEoECAkQDFIDYmFyUgNiYXoiHQoRVGVzdEFsbEV4dGVuc2lvbnMqCAgBEICAgIACIicKF09wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uEgwKAWEYESABKAVSAWEiJwoXUmVwZWF0ZWRHcm91cF9leHRlbnNpb24SDAoBYRgvIAEoBVIBYSLeAQoJVGVzdEdyb3VwElcKDW9wdGlvbmFsZ3JvdXAYECABKAoyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEdyb3VwLk9wdGlvbmFsR3JvdXBSDW9wdGlvbmFsZ3JvdXASWQoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhNvcHRpb25hbEZvcmVpZ25FbnVtGh0KDU9wdGlvbmFsR3JvdXASDAoBYRgRIAEoBVIBYSIeChJUZXN0R3JvdXBFeHRlbnNpb24qCAgBEICAgIACIrgEChNUZXN0TmVzdGVkRXh0ZW5zaW9uGicKF09wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uEgwKAWEYESABKAVSAWEyRgoEdGVzdBIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxjqByABKAk6BHRlc3RSBHRlc3QyZAoXbmVzdGVkX3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMY6wcgASgJUhVuZXN0ZWRTdHJpbmdFeHRlbnNpb24yrAEKF29wdGlvbmFsZ3JvdXBfZXh0ZW5zaW9uEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RHcm91cEV4dGVuc2lvbhgQIAEoCjJFLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TmVzdGVkRXh0ZW5zaW9uLk9wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uUhZvcHRpb25hbGdyb3VwRXh0ZW5zaW9uMpoBCh9vcHRpb25hbF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RHcm91cEV4dGVuc2lvbhgWIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVIcb3B0aW9uYWxGb3JlaWduRW51bUV4dGVuc2lvbiKQCAoMVGVzdFJlcXVpcmVkEgwKAWEYASACKAVSAWESFgoGZHVtbXkyGAIgASgFUgZkdW1teTISDAoBYhgDIAIoBVIBYhIWCgZkdW1teTQYBCABKAVSBmR1bW15NBIWCgZkdW1teTUYBSABKAVSBmR1bW15NRIWCgZkdW1teTYYBiABKAVSBmR1bW15NhIWCgZkdW1teTcYByABKAVSBmR1bW15NxIWCgZkdW1teTgYCCABKAVSBmR1bW15OBIWCgZkdW1teTkYCSABKAVSBmR1bW15ORIYCgdkdW1teTEwGAogASgFUgdkdW1teTEwEhgKB2R1bW15MTEYCyABKAVSB2R1bW15MTESGAoHZHVtbXkxMhgMIAEoBVIHZHVtbXkxMhIYCgdkdW1teTEzGA0gASgFUgdkdW1teTEzEhgKB2R1bW15MTQYDiABKAVSB2R1bW15MTQSGAoHZHVtbXkxNRgPIAEoBVIHZHVtbXkxNRIYCgdkdW1teTE2GBAgASgFUgdkdW1teTE2EhgKB2R1bW15MTcYESABKAVSB2R1bW15MTcSGAoHZHVtbXkxOBgSIAEoBVIHZHVtbXkxOBIYCgdkdW1teTE5GBMgASgFUgdkdW1teTE5EhgKB2R1bW15MjAYFCABKAVSB2R1bW15MjASGAoHZHVtbXkyMRgVIAEoBVIHZHVtbXkyMRIYCgdkdW1teTIyGBYgASgFUgdkdW1teTIyEhgKB2R1bW15MjMYFyABKAVSB2R1bW15MjMSGAoHZHVtbXkyNBgYIAEoBVIHZHVtbXkyNBIYCgdkdW1teTI1GBkgASgFUgdkdW1teTI1EhgKB2R1bW15MjYYGiABKAVSB2R1bW15MjYSGAoHZHVtbXkyNxgbIAEoBVIHZHVtbXkyNxIYCgdkdW1teTI4GBwgASgFUgdkdW1teTI4EhgKB2R1bW15MjkYHSABKAVSB2R1bW15MjkSGAoHZHVtbXkzMBgeIAEoBVIHZHVtbXkzMBIYCgdkdW1teTMxGB8gASgFUgdkdW1teTMxEhgKB2R1bW15MzIYICABKAVSB2R1bW15MzISDAoBYxghIAIoBVIBYzJsCgZzaW5nbGUSKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMY6AcgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIGc2luZ2xlMmoKBW11bHRpEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGOkHIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSBW11bHRpItEBChNUZXN0UmVxdWlyZWRGb3JlaWduElEKEG9wdGlvbmFsX21lc3NhZ2UYASABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUg9vcHRpb25hbE1lc3NhZ2USUQoQcmVwZWF0ZWRfbWVzc2FnZRgCIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSD3JlcGVhdGVkTWVzc2FnZRIUCgVkdW1teRgDIAEoBVIFZHVtbXkijgIKE1Rlc3RSZXF1aXJlZE1lc3NhZ2USUQoQb3B0aW9uYWxfbWVzc2FnZRgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSD29wdGlvbmFsTWVzc2FnZRJRChByZXBlYXRlZF9tZXNzYWdlGAIgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIPcmVwZWF0ZWRNZXNzYWdlElEKEHJlcXVpcmVkX21lc3NhZ2UYAyACKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUg9yZXF1aXJlZE1lc3NhZ2UicAoRVGVzdEZvcmVpZ25OZXN0ZWQSWwoOZm9yZWlnbl9uZXN0ZWQYASABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSDWZvcmVpZ25OZXN0ZWQiEgoQVGVzdEVtcHR5TWVzc2FnZSIqCh5UZXN0RW1wdHlNZXNzYWdlV2l0aEV4dGVuc2lvbnMqCAgBEICAgIACIjcKG1Rlc3RNdWx0aXBsZUV4dGVuc2lvblJhbmdlcyoECCoQKyoGCK8gEJQhKgoIgIAEEICAgIACIjsKGFRlc3RSZWFsbHlMYXJnZVRhZ051bWJlchIMCgFhGAEgASgFUgFhEhEKAmJiGP///38gASgFUgJiYiJiChRUZXN0UmVjdXJzaXZlTWVzc2FnZRI8CgFhGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZWN1cnNpdmVNZXNzYWdlUgFhEgwKAWkYAiABKAVSAWkirwMKFFRlc3RNdXR1YWxSZWN1cnNpb25BEj4KAmJiGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1cnNpb25CUgJiYhJTCghzdWJncm91cBgCIAEoCjI3LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQS5TdWJHcm91cFIIc3ViZ3JvdXAaSgoKU3ViTWVzc2FnZRI8CgFiGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1cnNpb25CUgFiGrUBCghTdWJHcm91cBJaCgtzdWJfbWVzc2FnZRgDIAEoCzI5LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TXV0dWFsUmVjdXJzaW9uQS5TdWJNZXNzYWdlUgpzdWJNZXNzYWdlEk0KD25vdF9pbl90aGlzX3NjYxgEIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSDG5vdEluVGhpc1NjYyJ7ChRUZXN0TXV0dWFsUmVjdXJzaW9uQhI8CgFhGAEgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1cnNpb25BUgFhEiUKDm9wdGlvbmFsX2ludDMyGAIgASgFUg1vcHRpb25hbEludDMyIvIBChFUZXN0SXNJbml0aWFsaXplZBJXCgtzdWJfbWVzc2FnZRgBIAEoCzI2LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SXNJbml0aWFsaXplZC5TdWJNZXNzYWdlUgpzdWJNZXNzYWdlGoMBCgpTdWJNZXNzYWdlElsKCHN1Ymdyb3VwGAEgASgKMj8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RJc0luaXRpYWxpemVkLlN1Yk1lc3NhZ2UuU3ViR3JvdXBSCHN1Ymdyb3VwGhgKCFN1Ykdyb3VwEgwKAWkYAiACKAVSAWki1AEKElRlc3REdXBGaWVsZE51bWJlchIMCgFhGAEgASgFUgFhEkIKA2ZvbxgCIAEoCjIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RHVwRmllbGROdW1iZXIuRm9vUgNmb28SQgoDYmFyGAMgASgKMjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3REdXBGaWVsZE51bWJlci5CYXJSA2JhchoTCgNGb28SDAoBYRgBIAEoBVIBYRoTCgNCYXISDAoBYRgBIAEoBVIBYSJfChBUZXN0RWFnZXJNZXNzYWdlEksKC3N1Yl9tZXNzYWdlGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0ICKABSCnN1Yk1lc3NhZ2UiXgoPVGVzdExhenlNZXNzYWdlEksKC3N1Yl9tZXNzYWdlGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0ICKAFSCnN1Yk1lc3NhZ2Ui5gIKGFRlc3ROZXN0ZWRNZXNzYWdlSGFzQml0cxJ4ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgBIAEoCzJALnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0TmVzdGVkTWVzc2FnZUhhc0JpdHMuTmVzdGVkTWVzc2FnZVIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdlGs8BCg1OZXN0ZWRNZXNzYWdlEkAKHG5lc3RlZG1lc3NhZ2VfcmVwZWF0ZWRfaW50MzIYASADKAVSGm5lc3RlZG1lc3NhZ2VSZXBlYXRlZEludDMyEnwKJW5lc3RlZG1lc3NhZ2VfcmVwZWF0ZWRfZm9yZWlnbm1lc3NhZ2UYAiADKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSI25lc3RlZG1lc3NhZ2VSZXBlYXRlZEZvcmVpZ25tZXNzYWdlItcFChdUZXN0Q2FtZWxDYXNlRmllbGROYW1lcxImCg5QcmltaXRpdmVGaWVsZBgBIAEoBVIOUHJpbWl0aXZlRmllbGQSIAoLU3RyaW5nRmllbGQYAiABKAlSC1N0cmluZ0ZpZWxkEkMKCUVudW1GaWVsZBgDIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVIJRW51bUZpZWxkEkwKDE1lc3NhZ2VGaWVsZBgEIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIMTWVzc2FnZUZpZWxkEi4KEFN0cmluZ1BpZWNlRmllbGQYBSABKAlCAggCUhBTdHJpbmdQaWVjZUZpZWxkEiAKCUNvcmRGaWVsZBgGIAEoCUICCAFSCUNvcmRGaWVsZBI2ChZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkGAcgAygFUhZSZXBlYXRlZFByaW1pdGl2ZUZpZWxkEjAKE1JlcGVhdGVkU3RyaW5nRmllbGQYCCADKAlSE1JlcGVhdGVkU3RyaW5nRmllbGQSUwoRUmVwZWF0ZWRFbnVtRmllbGQYCSADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SEVJlcGVhdGVkRW51bUZpZWxkElwKFFJlcGVhdGVkTWVzc2FnZUZpZWxkGAogAygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUhRSZXBlYXRlZE1lc3NhZ2VGaWVsZBI+ChhSZXBlYXRlZFN0cmluZ1BpZWNlRmllbGQYCyADKAlCAggCUhhSZXBlYXRlZFN0cmluZ1BpZWNlRmllbGQSMAoRUmVwZWF0ZWRDb3JkRmllbGQYDCADKAlCAggBUhFSZXBlYXRlZENvcmRGaWVsZCKVAgoSVGVzdEZpZWxkT3JkZXJpbmdzEhsKCW15X3N0cmluZxgLIAEoCVIIbXlTdHJpbmcSFQoGbXlfaW50GAEgASgDUgVteUludBIZCghteV9mbG9hdBhlIAEoAlIHbXlGbG9hdBJzChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRjIASABKAsyOi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRovCg1OZXN0ZWRNZXNzYWdlEg4KAm9vGAIgASgDUgJvbxIOCgJiYhgBIAEoBVICYmIqBAgCEAsqBAgMEGUiyAEKF1Rlc3RFeHRlbnNpb25PcmRlcmluZ3MxEhsKCW15X3N0cmluZxgBIAEoCVIIbXlTdHJpbmcyjwEKE3Rlc3RfZXh0X29yZGVyaW5nczESLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzGA0gASgLMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RFeHRlbnNpb25PcmRlcmluZ3MxUhF0ZXN0RXh0T3JkZXJpbmdzMSKrAwoXVGVzdEV4dGVuc2lvbk9yZGVyaW5nczISGwoJbXlfc3RyaW5nGAEgASgJUghteVN0cmluZxrgAQoXVGVzdEV4dGVuc2lvbk9yZGVyaW5nczMSGwoJbXlfc3RyaW5nGAEgASgJUghteVN0cmluZzKnAQoTdGVzdF9leHRfb3JkZXJpbmdzMxIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYDiABKAsySS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczNSEXRlc3RFeHRPcmRlcmluZ3MzMo8BChN0ZXN0X2V4dF9vcmRlcmluZ3MyEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncxgMIAEoCzIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMlIRdGVzdEV4dE9yZGVyaW5nczIirwoKGFRlc3RFeHRyZW1lRGVmYXVsdFZhbHVlcxJNCg1lc2NhcGVkX2J5dGVzGAEgASgMOihcMDAwXDAwMVwwMDdcMDEwXDAxNFxuXHJcdFwwMTNcXFwnXCJcMzc2Ugxlc2NhcGVkQnl0ZXMSLQoMbGFyZ2VfdWludDMyGAIgASgNOgo0Mjk0OTY3Mjk1UgtsYXJnZVVpbnQzMhI3CgxsYXJnZV91aW50NjQYAyABKAQ6FDE4NDQ2NzQ0MDczNzA5NTUxNjE1UgtsYXJnZVVpbnQ2NBIsCgtzbWFsbF9pbnQzMhgEIAEoBToLLTIxNDc0ODM2NDdSCnNtYWxsSW50MzISNQoLc21hbGxfaW50NjQYBSABKAM6FC05MjIzMzcyMDM2ODU0Nzc1ODA3UgpzbWFsbEludDY0EjkKEnJlYWxseV9zbWFsbF9pbnQzMhgVIAEoBToLLTIxNDc0ODM2NDhSEHJlYWxseVNtYWxsSW50MzISQgoScmVhbGx5X3NtYWxsX2ludDY0GBYgASgDOhQtOTIyMzM3MjAzNjg1NDc3NTgwOFIQcmVhbGx5U21hbGxJbnQ2NBIkCgt1dGY4X3N0cmluZxgGIAEoCToD4Yi0Ugp1dGY4U3RyaW5nEiAKCnplcm9fZmxvYXQYByABKAI6ATBSCXplcm9GbG9hdBIeCglvbmVfZmxvYXQYCCABKAI6ATFSCG9uZUZsb2F0EiQKC3NtYWxsX2Zsb2F0GAkgASgCOgMxLjVSCnNtYWxsRmxvYXQSMAoSbmVnYXRpdmVfb25lX2Zsb2F0GAogASgCOgItMVIQbmVnYXRpdmVPbmVGbG9hdBIrCg5uZWdhdGl2ZV9mbG9hdBgLIAEoAjoELTEuNVINbmVnYXRpdmVGbG9hdBImCgtsYXJnZV9mbG9hdBgMIAEoAjoFMmUrMDhSCmxhcmdlRmxvYXQSOAoUc21hbGxfbmVnYXRpdmVfZmxvYXQYDSABKAI6Bi04ZS0yOFISc21hbGxOZWdhdGl2ZUZsb2F0EiIKCmluZl9kb3VibGUYDiABKAE6A2luZlIJaW5mRG91YmxlEioKDm5lZ19pbmZfZG91YmxlGA8gASgBOgQtaW5mUgxuZWdJbmZEb3VibGUSIgoKbmFuX2RvdWJsZRgQIAEoAToDbmFuUgluYW5Eb3VibGUSIAoJaW5mX2Zsb2F0GBEgASgCOgNpbmZSCGluZkZsb2F0EigKDW5lZ19pbmZfZmxvYXQYEiABKAI6BC1pbmZSC25lZ0luZkZsb2F0EiAKCW5hbl9mbG9hdBgTIAEoAjoDbmFuUghuYW5GbG9hdBI4CgxjcHBfdHJpZ3JhcGgYFCABKAk6FT8gPyA/PyA/PyA/Pz8gPz8vID8/LVILY3BwVHJpZ3JhcGgSMAoQc3RyaW5nX3dpdGhfemVybxgXIAEoCToGaGVsAGxvUg5zdHJpbmdXaXRoWmVybxIxCg9ieXRlc193aXRoX3plcm8YGCABKAw6CXdvclwwMDBsZFINYnl0ZXNXaXRoWmVybxI9ChZzdHJpbmdfcGllY2Vfd2l0aF96ZXJvGBkgASgJOgRhYgBjQgIIAlITc3RyaW5nUGllY2VXaXRoWmVybxIuCg5jb3JkX3dpdGhfemVybxgaIAEoCToEMTIAM0ICCAFSDGNvcmRXaXRoWmVybxI5ChJyZXBsYWNlbWVudF9zdHJpbmcYGyABKAk6CiR7dW5rbm93bn1SEXJlcGxhY2VtZW50U3RyaW5nIl4KEVNwYXJzZUVudW1NZXNzYWdlEkkKC3NwYXJzZV9lbnVtGAEgASgOMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RTcGFyc2VFbnVtUgpzcGFyc2VFbnVtIh8KCU9uZVN0cmluZxISCgRkYXRhGAEgASgJUgRkYXRhIiAKCk1vcmVTdHJpbmcSEgoEZGF0YRgBIAMoCVIEZGF0YSIeCghPbmVCeXRlcxISCgRkYXRhGAEgASgMUgRkYXRhIh8KCU1vcmVCeXRlcxISCgRkYXRhGAEgAygMUgRkYXRhIiIKDEludDMyTWVzc2FnZRISCgRkYXRhGAEgASgFUgRkYXRhIiMKDVVpbnQzMk1lc3NhZ2USEgoEZGF0YRgBIAEoDVIEZGF0YSIiCgxJbnQ2NE1lc3NhZ2USEgoEZGF0YRgBIAEoA1IEZGF0YSIjCg1VaW50NjRNZXNzYWdlEhIKBGRhdGEYASABKARSBGRhdGEiIQoLQm9vbE1lc3NhZ2USEgoEZGF0YRgBIAEoCFIEZGF0YSKNAgoJVGVzdE9uZW9mEhkKB2Zvb19pbnQYASABKAVIAFIGZm9vSW50Eh8KCmZvb19zdHJpbmcYAiABKAlIAFIJZm9vU3RyaW5nEkkKC2Zvb19tZXNzYWdlGAMgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0gAUgpmb29NZXNzYWdlEkoKCGZvb2dyb3VwGAQgASgKMiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZi5Gb29Hcm91cEgAUghmb29ncm91cBomCghGb29Hcm91cBIMCgFhGAUgASgFUgFhEgwKAWIYBiABKAlSAWJCBQoDZm9vIqQCChxUZXN0T25lb2ZCYWNrd2FyZHNDb21wYXRpYmxlEhcKB2Zvb19pbnQYASABKAVSBmZvb0ludBIdCgpmb29fc3RyaW5nGAIgASgJUglmb29TdHJpbmcSRwoLZm9vX21lc3NhZ2UYAyABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgpmb29NZXNzYWdlElsKCGZvb2dyb3VwGAQgASgKMj8ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZkJhY2t3YXJkc0NvbXBhdGlibGUuRm9vR3JvdXBSCGZvb2dyb3VwGiYKCEZvb0dyb3VwEgwKAWEYBSABKAVSAWESDAoBYhgGIAEoCVIBYiKQCAoKVGVzdE9uZW9mMhIZCgdmb29faW50GAEgASgFSABSBmZvb0ludBIfCgpmb29fc3RyaW5nGAIgASgJSABSCWZvb1N0cmluZxIfCghmb29fY29yZBgDIAEoCUICCAFIAFIHZm9vQ29yZBIuChBmb29fc3RyaW5nX3BpZWNlGAQgASgJQgIIAkgAUg5mb29TdHJpbmdQaWVjZRIdCglmb29fYnl0ZXMYBSABKAxIAFIIZm9vQnl0ZXMSTAoIZm9vX2VudW0YBiABKA4yLy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtSABSB2Zvb0VudW0SVQoLZm9vX21lc3NhZ2UYByABKAsyMi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5OZXN0ZWRNZXNzYWdlSABSCmZvb01lc3NhZ2USSwoIZm9vZ3JvdXAYCCABKAoyLS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5Gb29Hcm91cEgAUghmb29ncm91cBJiChBmb29fbGF6eV9tZXNzYWdlGAsgASgLMjIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RPbmVvZjIuTmVzdGVkTWVzc2FnZUICKAFIAFIOZm9vTGF6eU1lc3NhZ2USHAoHYmFyX2ludBgMIAEoBToBNUgBUgZiYXJJbnQSJwoKYmFyX3N0cmluZxgNIAEoCToGU1RSSU5HSAFSCWJhclN0cmluZxIlCghiYXJfY29yZBgOIAEoCToEQ09SREICCAFIAVIHYmFyQ29yZBI2ChBiYXJfc3RyaW5nX3BpZWNlGA8gASgJOgZTUElFQ0VCAggCSAFSDmJhclN0cmluZ1BpZWNlEiQKCWJhcl9ieXRlcxgQIAEoDDoFQllURVNIAVIIYmFyQnl0ZXMSUQoIYmFyX2VudW0YESABKA4yLy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5OZXN0ZWRFbnVtOgNCQVJIAVIHYmFyRW51bRIXCgdiYXpfaW50GBIgASgFUgZiYXpJbnQSIgoKYmF6X3N0cmluZxgTIAEoCToDQkFaUgliYXpTdHJpbmcaJgoIRm9vR3JvdXASDAoBYRgJIAEoBVIBYRIMCgFiGAogASgJUgFiGkUKDU5lc3RlZE1lc3NhZ2USFwoHcXV4X2ludBgBIAEoA1IGcXV4SW50EhsKCWNvcmdlX2ludBgCIAMoBVIIY29yZ2VJbnQiJwoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQA0IFCgNmb29CBQoDYmFyIu4BChFUZXN0UmVxdWlyZWRPbmVvZhIZCgdmb29faW50GAEgASgFSABSBmZvb0ludBIfCgpmb29fc3RyaW5nGAIgASgJSABSCWZvb1N0cmluZxJcCgtmb29fbWVzc2FnZRgDIAEoCzI5LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRPbmVvZi5OZXN0ZWRNZXNzYWdlSABSCmZvb01lc3NhZ2UaOAoNTmVzdGVkTWVzc2FnZRInCg9yZXF1aXJlZF9kb3VibGUYASACKAFSDnJlcXVpcmVkRG91YmxlQgUKA2ZvbyKAAgoPVGVzdFJlcXVpcmVkTWFwEkQKA2ZvbxgBIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRNYXAuRm9vRW50cnlSA2ZvbxpvCghGb29FbnRyeRIQCgNrZXkYASABKAVSA2tleRJNCgV2YWx1ZRgCIAEoCzI3LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRNYXAuTmVzdGVkTWVzc2FnZVIFdmFsdWU6AjgBGjYKDU5lc3RlZE1lc3NhZ2USJQoOcmVxdWlyZWRfaW50MzIYASACKAVSDXJlcXVpcmVkSW50MzIi9AQKD1Rlc3RQYWNrZWRUeXBlcxIlCgxwYWNrZWRfaW50MzIYWiADKAVCAhABUgtwYWNrZWRJbnQzMhIlCgxwYWNrZWRfaW50NjQYWyADKANCAhABUgtwYWNrZWRJbnQ2NBInCg1wYWNrZWRfdWludDMyGFwgAygNQgIQAVIMcGFja2VkVWludDMyEicKDXBhY2tlZF91aW50NjQYXSADKARCAhABUgxwYWNrZWRVaW50NjQSJwoNcGFja2VkX3NpbnQzMhheIAMoEUICEAFSDHBhY2tlZFNpbnQzMhInCg1wYWNrZWRfc2ludDY0GF8gAygSQgIQAVIMcGFja2VkU2ludDY0EikKDnBhY2tlZF9maXhlZDMyGGAgAygHQgIQAVINcGFja2VkRml4ZWQzMhIpCg5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEAFSDXBhY2tlZEZpeGVkNjQSKwoPcGFja2VkX3NmaXhlZDMyGGIgAygPQgIQAVIOcGFja2VkU2ZpeGVkMzISKwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQAVIOcGFja2VkU2ZpeGVkNjQSJQoMcGFja2VkX2Zsb2F0GGQgAygCQgIQAVILcGFja2VkRmxvYXQSJwoNcGFja2VkX2RvdWJsZRhlIAMoAUICEAFSDHBhY2tlZERvdWJsZRIjCgtwYWNrZWRfYm9vbBhmIAMoCEICEAFSCnBhY2tlZEJvb2wSSgoLcGFja2VkX2VudW0YZyADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhABUgpwYWNrZWRFbnVtIq4FChFUZXN0VW5wYWNrZWRUeXBlcxIpCg51bnBhY2tlZF9pbnQzMhhaIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWyADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhcIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhdIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhheIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBhfIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYYCADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhhIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYyADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGQgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZSADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGYgAygIQgIQAFIMdW5wYWNrZWRCb29sEk4KDXVucGFja2VkX2VudW0YZyADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhAAUgx1bnBhY2tlZEVudW0iIAoUVGVzdFBhY2tlZEV4dGVuc2lvbnMqCAgBEICAgIACIiIKFlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMqCAgBEICAgIACIsgFChVUZXN0RHluYW1pY0V4dGVuc2lvbnMSKgoQc2NhbGFyX2V4dGVuc2lvbhjQDyABKAdSD3NjYWxhckV4dGVuc2lvbhJNCg5lbnVtX2V4dGVuc2lvbhjRDyABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SDWVudW1FeHRlbnNpb24SdgoWZHluYW1pY19lbnVtX2V4dGVuc2lvbhjSDyABKA4yPy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdER5bmFtaWNFeHRlbnNpb25zLkR5bmFtaWNFbnVtVHlwZVIUZHluYW1pY0VudW1FeHRlbnNpb24SVgoRbWVzc2FnZV9leHRlbnNpb24Y0w8gASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUhBtZXNzYWdlRXh0ZW5zaW9uEn8KGWR5bmFtaWNfbWVzc2FnZV9leHRlbnNpb24Y1A8gASgLMkIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3REeW5hbWljRXh0ZW5zaW9ucy5EeW5hbWljTWVzc2FnZVR5cGVSF2R5bmFtaWNNZXNzYWdlRXh0ZW5zaW9uEi4KEnJlcGVhdGVkX2V4dGVuc2lvbhjVDyADKAlSEXJlcGVhdGVkRXh0ZW5zaW9uEi4KEHBhY2tlZF9leHRlbnNpb24Y1g8gAygRQgIQAVIPcGFja2VkRXh0ZW5zaW9uGjoKEkR5bmFtaWNNZXNzYWdlVHlwZRIkCg1keW5hbWljX2ZpZWxkGLQQIAEoBVIMZHluYW1pY0ZpZWxkIkcKD0R5bmFtaWNFbnVtVHlwZRIQCgtEWU5BTUlDX0ZPTxCYERIQCgtEWU5BTUlDX0JBUhCZERIQCgtEWU5BTUlDX0JBWhCaESKfAgojVGVzdFJlcGVhdGVkU2NhbGFyRGlmZmVyZW50VGFnU2l6ZXMSKQoQcmVwZWF0ZWRfZml4ZWQzMhgMIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEiUKDnJlcGVhdGVkX2ludDMyGA0gAygFUg1yZXBlYXRlZEludDMyEioKEHJlcGVhdGVkX2ZpeGVkNjQY/g8gAygGUg9yZXBlYXRlZEZpeGVkNjQSJgoOcmVwZWF0ZWRfaW50NjQY/w8gAygDUg1yZXBlYXRlZEludDY0EicKDnJlcGVhdGVkX2Zsb2F0GP7/DyADKAJSDXJlcGVhdGVkRmxvYXQSKQoPcmVwZWF0ZWRfdWludDY0GP//DyADKARSDnJlcGVhdGVkVWludDY0IuMMChBUZXN0UGFyc2luZ01lcmdlElQKEnJlcXVpcmVkX2FsbF90eXBlcxgBIAIoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSEHJlcXVpcmVkQWxsVHlwZXMSVAoSb3B0aW9uYWxfYWxsX3R5cGVzGAIgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IQb3B0aW9uYWxBbGxUeXBlcxJUChJyZXBlYXRlZF9hbGxfdHlwZXMYAyADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUhByZXBlYXRlZEFsbFR5cGVzEl4KDW9wdGlvbmFsZ3JvdXAYCiABKAoyOC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwEl4KDXJlcGVhdGVkZ3JvdXAYFCADKAoyOC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5SZXBlYXRlZEdyb3VwUg1yZXBlYXRlZGdyb3VwGq0FChdSZXBlYXRlZEZpZWxkc0dlbmVyYXRvchI+CgZmaWVsZDEYASADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgZmaWVsZDESPgoGZmllbGQyGAIgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IGZmllbGQyEj4KBmZpZWxkMxgDIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBmZpZWxkMxJhCgZncm91cDEYCiADKAoySS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5SZXBlYXRlZEZpZWxkc0dlbmVyYXRvci5Hcm91cDFSBmdyb3VwMRJhCgZncm91cDIYFCADKAoySS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhcnNpbmdNZXJnZS5SZXBlYXRlZEZpZWxkc0dlbmVyYXRvci5Hcm91cDJSBmdyb3VwMhI7CgRleHQxGOgHIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBGV4dDESOwoEZXh0MhjpByADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgRleHQyGkgKBkdyb3VwMRI+CgZmaWVsZDEYCyABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgZmaWVsZDEaSAoGR3JvdXAyEj4KBmZpZWxkMRgVIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBmZpZWxkMRpwCg1PcHRpb25hbEdyb3VwEl8KGG9wdGlvbmFsX2dyb3VwX2FsbF90eXBlcxgLIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSFW9wdGlvbmFsR3JvdXBBbGxUeXBlcxpwCg1SZXBlYXRlZEdyb3VwEl8KGHJlcGVhdGVkX2dyb3VwX2FsbF90eXBlcxgVIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSFXJlcGVhdGVkR3JvdXBBbGxUeXBlcyoJCOgHEICAgIACMnYKDG9wdGlvbmFsX2V4dBIqLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlGOgHIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSC29wdGlvbmFsRXh0MnYKDHJlcGVhdGVkX2V4dBIqLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlGOkHIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSC3JlcGVhdGVkRXh0IkcKG1Rlc3RDb21tZW50SW5qZWN0aW9uTWVzc2FnZRIoCgFhGAEgASgJOhoqLyA8LSBOZWl0aGVyIHNob3VsZCB0aGlzLlIBYSIMCgpGb29SZXF1ZXN0Ig0KC0Zvb1Jlc3BvbnNlIhIKEEZvb0NsaWVudE1lc3NhZ2UiEgoQRm9vU2VydmVyTWVzc2FnZSIMCgpCYXJSZXF1ZXN0Ig0KC0JhclJlc3BvbnNlIs4BCgxUZXN0SnNvbk5hbWUSHwoLZmllbGRfbmFtZTEYASABKAVSCmZpZWxkTmFtZTESHgoKZmllbGROYW1lMhgCIAEoBVIKZmllbGROYW1lMhIeCgpGaWVsZE5hbWUzGAMgASgFUgpGaWVsZE5hbWUzEiAKDF9maWVsZF9uYW1lNBgEIAEoBVIKRmllbGROYW1lNBIfCgtGSUVMRF9OQU1FNRgFIAEoBVIKRklFTEROQU1FNRIaCgtmaWVsZF9uYW1lNhgGIAEoBVIFQHR5cGUi/wcKFFRlc3RIdWdlRmllbGROdW1iZXJzEikKDm9wdGlvbmFsX2ludDMyGPD4//8BIAEoBVINb3B0aW9uYWxJbnQzMhIdCghmaXhlZF8zMhjx+P//ASABKAVSB2ZpeGVkMzISLQoOcmVwZWF0ZWRfaW50MzIY8vj//wEgAygFQgIQAFINcmVwZWF0ZWRJbnQzMhIpCgxwYWNrZWRfaW50MzIY8/j//wEgAygFQgIQAVILcGFja2VkSW50MzISTgoNb3B0aW9uYWxfZW51bRj0+P//ASABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SDG9wdGlvbmFsRW51bRIrCg9vcHRpb25hbF9zdHJpbmcY9fj//wEgASgJUg5vcHRpb25hbFN0cmluZxIpCg5vcHRpb25hbF9ieXRlcxj2+P//ASABKAxSDW9wdGlvbmFsQnl0ZXMSVwoQb3B0aW9uYWxfbWVzc2FnZRj3+P//ASABKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSD29wdGlvbmFsTWVzc2FnZRJmCg1vcHRpb25hbGdyb3VwGPj4//8BIAEoCjI8LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SHVnZUZpZWxkTnVtYmVycy5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwEnMKEXN0cmluZ19zdHJpbmdfbWFwGPr4//8BIAMoCzJDLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0SHVnZUZpZWxkTnVtYmVycy5TdHJpbmdTdHJpbmdNYXBFbnRyeVIPc3RyaW5nU3RyaW5nTWFwEicKDG9uZW9mX3VpbnQzMhj7+P//ASABKA1IAFILb25lb2ZVaW50MzISXQoUb25lb2ZfdGVzdF9hbGxfdHlwZXMY/Pj//wEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc0gAUhFvbmVvZlRlc3RBbGxUeXBlcxInCgxvbmVvZl9zdHJpbmcY/fj//wEgASgJSABSC29uZW9mU3RyaW5nEiUKC29uZW9mX2J5dGVzGP74//8BIAEoDEgAUgpvbmVvZkJ5dGVzGiwKDU9wdGlvbmFsR3JvdXASGwoHZ3JvdXBfYRj5+P//ASABKAVSBmdyb3VwQRpCChRTdHJpbmdTdHJpbmdNYXBFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBKgwI4Kr//wEQ8Pj//wFCDQoLb25lb2ZfZmllbGQi+gEKGFRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZRIWCgZmaWVsZDEYASABKAVSBmZpZWxkMRIWCgZmaWVsZDIYAiABKAVSBmZpZWxkMhIWCgZmaWVsZDMYAyABKAVSBmZpZWxkMxIWCgZmaWVsZDQYBCABKAVSBmZpZWxkNBIWCgZmaWVsZDYYBiABKAVSBmZpZWxkNhIWCgZmaWVsZDcYByABKAVSBmZpZWxkNxIWCgZmaWVsZDgYCCABKAVSBmZpZWxkOBIWCgZmaWVsZDkYCSABKAVSBmZpZWxkORIYCgdmaWVsZDEwGAogASgFUgdmaWVsZDEwKgQIBRAGKkAKC0ZvcmVpZ25FbnVtEg8KC0ZPUkVJR05fRk9PEAQSDwoLRk9SRUlHTl9CQVIQBRIPCgtGT1JFSUdOX0JBWhAGKksKFFRlc3RFbnVtV2l0aER1cFZhbHVlEggKBEZPTzEQARIICgRCQVIxEAISBwoDQkFaEAMSCAoERk9PMhABEggKBEJBUjIQAhoCEAEqiQEKDlRlc3RTcGFyc2VFbnVtEgwKCFNQQVJTRV9BEHsSDgoIU1BBUlNFX0IQpucDEg8KCFNQQVJTRV9DELKxgAYSFQoIU1BBUlNFX0QQ8f//////////ARIVCghTUEFSU0VfRRC03vz///////8BEgwKCFNQQVJTRV9GEAASDAoIU1BBUlNFX0cQAiqLDwoNVmVyeUxhcmdlRW51bRIWChJFTlVNX0xBQkVMX0RFRkFVTFQQABIQCgxFTlVNX0xBQkVMXzEQARIQCgxFTlVNX0xBQkVMXzIQAhIQCgxFTlVNX0xBQkVMXzMQAxIQCgxFTlVNX0xBQkVMXzQQBBIQCgxFTlVNX0xBQkVMXzUQBRIQCgxFTlVNX0xBQkVMXzYQBhIQCgxFTlVNX0xBQkVMXzcQBxIQCgxFTlVNX0xBQkVMXzgQCBIQCgxFTlVNX0xBQkVMXzkQCRIRCg1FTlVNX0xBQkVMXzEwEAoSEQoNRU5VTV9MQUJFTF8xMRALEhEKDUVOVU1fTEFCRUxfMTIQDBIRCg1FTlVNX0xBQkVMXzEzEA0SEQoNRU5VTV9MQUJFTF8xNBAOEhEKDUVOVU1fTEFCRUxfMTUQDxIRCg1FTlVNX0xBQkVMXzE2EBASEQoNRU5VTV9MQUJFTF8xNxAREhEKDUVOVU1fTEFCRUxfMTgQEhIRCg1FTlVNX0xBQkVMXzE5EBMSEQoNRU5VTV9MQUJFTF8yMBAUEhEKDUVOVU1fTEFCRUxfMjEQFRIRCg1FTlVNX0xBQkVMXzIyEBYSEQoNRU5VTV9MQUJFTF8yMxAXEhEKDUVOVU1fTEFCRUxfMjQQGBIRCg1FTlVNX0xBQkVMXzI1EBkSEQoNRU5VTV9MQUJFTF8yNhAaEhEKDUVOVU1fTEFCRUxfMjcQGxIRCg1FTlVNX0xBQkVMXzI4EBwSEQoNRU5VTV9MQUJFTF8yORAdEhEKDUVOVU1fTEFCRUxfMzAQHhIRCg1FTlVNX0xBQkVMXzMxEB8SEQoNRU5VTV9MQUJFTF8zMhAgEhEKDUVOVU1fTEFCRUxfMzMQIRIRCg1FTlVNX0xBQkVMXzM0ECISEQoNRU5VTV9MQUJFTF8zNRAjEhEKDUVOVU1fTEFCRUxfMzYQJBIRCg1FTlVNX0xBQkVMXzM3ECUSEQoNRU5VTV9MQUJFTF8zOBAmEhEKDUVOVU1fTEFCRUxfMzkQJxIRCg1FTlVNX0xBQkVMXzQwECgSEQoNRU5VTV9MQUJFTF80MRApEhEKDUVOVU1fTEFCRUxfNDIQKhIRCg1FTlVNX0xBQkVMXzQzECsSEQoNRU5VTV9MQUJFTF80NBAsEhEKDUVOVU1fTEFCRUxfNDUQLRIRCg1FTlVNX0xBQkVMXzQ2EC4SEQoNRU5VTV9MQUJFTF80NxAvEhEKDUVOVU1fTEFCRUxfNDgQMBIRCg1FTlVNX0xBQkVMXzQ5EDESEQoNRU5VTV9MQUJFTF81MBAyEhEKDUVOVU1fTEFCRUxfNTEQMxIRCg1FTlVNX0xBQkVMXzUyEDQSEQoNRU5VTV9MQUJFTF81MxA1EhEKDUVOVU1fTEFCRUxfNTQQNhIRCg1FTlVNX0xBQkVMXzU1EDcSEQoNRU5VTV9MQUJFTF81NhA4EhEKDUVOVU1fTEFCRUxfNTcQORIRCg1FTlVNX0xBQkVMXzU4EDoSEQoNRU5VTV9MQUJFTF81ORA7EhEKDUVOVU1fTEFCRUxfNjAQPBIRCg1FTlVNX0xBQkVMXzYxED0SEQoNRU5VTV9MQUJFTF82MhA+EhEKDUVOVU1fTEFCRUxfNjMQPxIRCg1FTlVNX0xBQkVMXzY0EEASEQoNRU5VTV9MQUJFTF82NRBBEhEKDUVOVU1fTEFCRUxfNjYQQhIRCg1FTlVNX0xBQkVMXzY3EEMSEQoNRU5VTV9MQUJFTF82OBBEEhEKDUVOVU1fTEFCRUxfNjkQRRIRCg1FTlVNX0xBQkVMXzcwEEYSEQoNRU5VTV9MQUJFTF83MRBHEhEKDUVOVU1fTEFCRUxfNzIQSBIRCg1FTlVNX0xBQkVMXzczEEkSEQoNRU5VTV9MQUJFTF83NBBKEhEKDUVOVU1fTEFCRUxfNzUQSxIRCg1FTlVNX0xBQkVMXzc2EEwSEQoNRU5VTV9MQUJFTF83NxBNEhEKDUVOVU1fTEFCRUxfNzgQThIRCg1FTlVNX0xBQkVMXzc5EE8SEQoNRU5VTV9MQUJFTF84MBBQEhEKDUVOVU1fTEFCRUxfODEQURIRCg1FTlVNX0xBQkVMXzgyEFISEQoNRU5VTV9MQUJFTF84MxBTEhEKDUVOVU1fTEFCRUxfODQQVBIRCg1FTlVNX0xBQkVMXzg1EFUSEQoNRU5VTV9MQUJFTF84NhBWEhEKDUVOVU1fTEFCRUxfODcQVxIRCg1FTlVNX0xBQkVMXzg4EFgSEQoNRU5VTV9MQUJFTF84ORBZEhEKDUVOVU1fTEFCRUxfOTAQWhIRCg1FTlVNX0xBQkVMXzkxEFsSEQoNRU5VTV9MQUJFTF85MhBcEhEKDUVOVU1fTEFCRUxfOTMQXRIRCg1FTlVNX0xBQkVMXzk0EF4SEQoNRU5VTV9MQUJFTF85NRBfEhEKDUVOVU1fTEFCRUxfOTYQYBIRCg1FTlVNX0xBQkVMXzk3EGESEQoNRU5VTV9MQUJFTF85OBBiEhEKDUVOVU1fTEFCRUxfOTkQYxISCg5FTlVNX0xBQkVMXzEwMBBkMrUBCgtUZXN0U2VydmljZRJSCgNGb28SJC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9vUmVxdWVzdBolLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb29SZXNwb25zZRJSCgNCYXISJC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuQmFyUmVxdWVzdBolLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5CYXJSZXNwb25zZTplChhvcHRpb25hbF9pbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYASABKAVSFm9wdGlvbmFsSW50MzJFeHRlbnNpb246ZQoYb3B0aW9uYWxfaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAIgASgDUhZvcHRpb25hbEludDY0RXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYAyABKA1SF29wdGlvbmFsVWludDMyRXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3VpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYBCABKARSF29wdGlvbmFsVWludDY0RXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3NpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYBSABKBFSF29wdGlvbmFsU2ludDMyRXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3NpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYBiABKBJSF29wdGlvbmFsU2ludDY0RXh0ZW5zaW9uOmkKGm9wdGlvbmFsX2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAcgASgHUhhvcHRpb25hbEZpeGVkMzJFeHRlbnNpb246aQoab3B0aW9uYWxfZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYCCABKAZSGG9wdGlvbmFsRml4ZWQ2NEV4dGVuc2lvbjprChtvcHRpb25hbF9zZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYCSABKA9SGW9wdGlvbmFsU2ZpeGVkMzJFeHRlbnNpb246awobb3B0aW9uYWxfc2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAogASgQUhlvcHRpb25hbFNmaXhlZDY0RXh0ZW5zaW9uOmUKGG9wdGlvbmFsX2Zsb2F0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgLIAEoAlIWb3B0aW9uYWxGbG9hdEV4dGVuc2lvbjpnChlvcHRpb25hbF9kb3VibGVfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAwgASgBUhdvcHRpb25hbERvdWJsZUV4dGVuc2lvbjpjChdvcHRpb25hbF9ib29sX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgNIAEoCFIVb3B0aW9uYWxCb29sRXh0ZW5zaW9uOmcKGW9wdGlvbmFsX3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYDiABKAlSF29wdGlvbmFsU3RyaW5nRXh0ZW5zaW9uOmUKGG9wdGlvbmFsX2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgPIAEoDFIWb3B0aW9uYWxCeXRlc0V4dGVuc2lvbjqXAQoXb3B0aW9uYWxncm91cF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYECABKAoyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuT3B0aW9uYWxHcm91cF9leHRlbnNpb25SFm9wdGlvbmFsZ3JvdXBFeHRlbnNpb246rAEKIW9wdGlvbmFsX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgSIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIeb3B0aW9uYWxOZXN0ZWRNZXNzYWdlRXh0ZW5zaW9uOqIBCiJvcHRpb25hbF9mb3JlaWduX21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBMgASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUh9vcHRpb25hbEZvcmVpZ25NZXNzYWdlRXh0ZW5zaW9uOqYBCiFvcHRpb25hbF9pbXBvcnRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYFCABKAsyLi5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydE1lc3NhZ2VSHm9wdGlvbmFsSW1wb3J0TWVzc2FnZUV4dGVuc2lvbjqjAQoeb3B0aW9uYWxfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBUgASgOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhtvcHRpb25hbE5lc3RlZEVudW1FeHRlbnNpb246mQEKH29wdGlvbmFsX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYFiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SHG9wdGlvbmFsRm9yZWlnbkVudW1FeHRlbnNpb246nQEKHm9wdGlvbmFsX2ltcG9ydF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgXIAEoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bVIbb3B0aW9uYWxJbXBvcnRFbnVtRXh0ZW5zaW9uOnYKH29wdGlvbmFsX3N0cmluZ19waWVjZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYGCABKAlCAggCUhxvcHRpb25hbFN0cmluZ1BpZWNlRXh0ZW5zaW9uOmcKF29wdGlvbmFsX2NvcmRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBkgASgJQgIIAVIVb3B0aW9uYWxDb3JkRXh0ZW5zaW9uOrkBCihvcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBogASgLMjQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5QdWJsaWNJbXBvcnRNZXNzYWdlUiRvcHRpb25hbFB1YmxpY0ltcG9ydE1lc3NhZ2VFeHRlbnNpb246rAEKH29wdGlvbmFsX2xhenlfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYGyABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBUhxvcHRpb25hbExhenlNZXNzYWdlRXh0ZW5zaW9uOmUKGHJlcGVhdGVkX2ludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgfIAMoBVIWcmVwZWF0ZWRJbnQzMkV4dGVuc2lvbjplChhyZXBlYXRlZF9pbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYICADKANSFnJlcGVhdGVkSW50NjRFeHRlbnNpb246ZwoZcmVwZWF0ZWRfdWludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxghIAMoDVIXcmVwZWF0ZWRVaW50MzJFeHRlbnNpb246ZwoZcmVwZWF0ZWRfdWludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgiIAMoBFIXcmVwZWF0ZWRVaW50NjRFeHRlbnNpb246ZwoZcmVwZWF0ZWRfc2ludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgjIAMoEVIXcmVwZWF0ZWRTaW50MzJFeHRlbnNpb246ZwoZcmVwZWF0ZWRfc2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgkIAMoElIXcmVwZWF0ZWRTaW50NjRFeHRlbnNpb246aQoacmVwZWF0ZWRfZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYJSADKAdSGHJlcGVhdGVkRml4ZWQzMkV4dGVuc2lvbjppChpyZXBlYXRlZF9maXhlZDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgmIAMoBlIYcmVwZWF0ZWRGaXhlZDY0RXh0ZW5zaW9uOmsKG3JlcGVhdGVkX3NmaXhlZDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgnIAMoD1IZcmVwZWF0ZWRTZml4ZWQzMkV4dGVuc2lvbjprChtyZXBlYXRlZF9zZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYKCADKBBSGXJlcGVhdGVkU2ZpeGVkNjRFeHRlbnNpb246ZQoYcmVwZWF0ZWRfZmxvYXRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCkgAygCUhZyZXBlYXRlZEZsb2F0RXh0ZW5zaW9uOmcKGXJlcGVhdGVkX2RvdWJsZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYKiADKAFSF3JlcGVhdGVkRG91YmxlRXh0ZW5zaW9uOmMKF3JlcGVhdGVkX2Jvb2xfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCsgAygIUhVyZXBlYXRlZEJvb2xFeHRlbnNpb246ZwoZcmVwZWF0ZWRfc3RyaW5nX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgsIAMoCVIXcmVwZWF0ZWRTdHJpbmdFeHRlbnNpb246ZQoYcmVwZWF0ZWRfYnl0ZXNfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGC0gAygMUhZyZXBlYXRlZEJ5dGVzRXh0ZW5zaW9uOpcBChdyZXBlYXRlZGdyb3VwX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxguIAMoCjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5SZXBlYXRlZEdyb3VwX2V4dGVuc2lvblIWcmVwZWF0ZWRncm91cEV4dGVuc2lvbjqsAQohcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDAgAygLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlUh5yZXBlYXRlZE5lc3RlZE1lc3NhZ2VFeHRlbnNpb246ogEKInJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYMSADKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSH3JlcGVhdGVkRm9yZWlnbk1lc3NhZ2VFeHRlbnNpb246pgEKIXJlcGVhdGVkX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgyIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0TWVzc2FnZVIecmVwZWF0ZWRJbXBvcnRNZXNzYWdlRXh0ZW5zaW9uOqMBCh5yZXBlYXRlZF9uZXN0ZWRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYMyADKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SG3JlcGVhdGVkTmVzdGVkRW51bUV4dGVuc2lvbjqZAQofcmVwZWF0ZWRfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg0IAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVIccmVwZWF0ZWRGb3JlaWduRW51bUV4dGVuc2lvbjqdAQoecmVwZWF0ZWRfaW1wb3J0X2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDUgAygOMisucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRFbnVtUhtyZXBlYXRlZEltcG9ydEVudW1FeHRlbnNpb246dgofcmVwZWF0ZWRfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg2IAMoCUICCAJSHHJlcGVhdGVkU3RyaW5nUGllY2VFeHRlbnNpb246ZwoXcmVwZWF0ZWRfY29yZF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYNyADKAlCAggBUhVyZXBlYXRlZENvcmRFeHRlbnNpb246rAEKH3JlcGVhdGVkX2xhenlfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYOSADKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBUhxyZXBlYXRlZExhenlNZXNzYWdlRXh0ZW5zaW9uOmcKF2RlZmF1bHRfaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGD0gASgFOgI0MVIVZGVmYXVsdEludDMyRXh0ZW5zaW9uOmcKF2RlZmF1bHRfaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGD4gASgDOgI0MlIVZGVmYXVsdEludDY0RXh0ZW5zaW9uOmkKGGRlZmF1bHRfdWludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg/IAEoDToCNDNSFmRlZmF1bHRVaW50MzJFeHRlbnNpb246aQoYZGVmYXVsdF91aW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEAgASgEOgI0NFIWZGVmYXVsdFVpbnQ2NEV4dGVuc2lvbjpqChhkZWZhdWx0X3NpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYQSABKBE6Ay00NVIWZGVmYXVsdFNpbnQzMkV4dGVuc2lvbjppChhkZWZhdWx0X3NpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYQiABKBI6AjQ2UhZkZWZhdWx0U2ludDY0RXh0ZW5zaW9uOmsKGWRlZmF1bHRfZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYQyABKAc6AjQ3UhdkZWZhdWx0Rml4ZWQzMkV4dGVuc2lvbjprChlkZWZhdWx0X2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEQgASgGOgI0OFIXZGVmYXVsdEZpeGVkNjRFeHRlbnNpb246bQoaZGVmYXVsdF9zZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYRSABKA86AjQ5UhhkZWZhdWx0U2ZpeGVkMzJFeHRlbnNpb246bgoaZGVmYXVsdF9zZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYRiABKBA6Ay01MFIYZGVmYXVsdFNmaXhlZDY0RXh0ZW5zaW9uOmkKF2RlZmF1bHRfZmxvYXRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEcgASgCOgQ1MS41UhVkZWZhdWx0RmxvYXRFeHRlbnNpb246bAoYZGVmYXVsdF9kb3VibGVfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEggASgBOgU1MjAwMFIWZGVmYXVsdERvdWJsZUV4dGVuc2lvbjpnChZkZWZhdWx0X2Jvb2xfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEkgASgIOgR0cnVlUhRkZWZhdWx0Qm9vbEV4dGVuc2lvbjpsChhkZWZhdWx0X3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYSiABKAk6BWhlbGxvUhZkZWZhdWx0U3RyaW5nRXh0ZW5zaW9uOmoKF2RlZmF1bHRfYnl0ZXNfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEsgASgMOgV3b3JsZFIVZGVmYXVsdEJ5dGVzRXh0ZW5zaW9uOqYBCh1kZWZhdWx0X25lc3RlZF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhRIAEoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bToDQkFSUhpkZWZhdWx0TmVzdGVkRW51bUV4dGVuc2lvbjqkAQoeZGVmYXVsdF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGFIgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtOgtGT1JFSUdOX0JBUlIbZGVmYXVsdEZvcmVpZ25FbnVtRXh0ZW5zaW9uOqcBCh1kZWZhdWx0X2ltcG9ydF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhTIAEoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bToKSU1QT1JUX0JBUlIaZGVmYXVsdEltcG9ydEVudW1FeHRlbnNpb246eQoeZGVmYXVsdF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGFQgASgJOgNhYmNCAggCUhtkZWZhdWx0U3RyaW5nUGllY2VFeHRlbnNpb246agoWZGVmYXVsdF9jb3JkX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhVIAEoCToDMTIzQgIIAVIUZGVmYXVsdENvcmRFeHRlbnNpb246YQoWb25lb2ZfdWludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhvIAEoDVIUb25lb2ZVaW50MzJFeHRlbnNpb246pgEKHm9uZW9mX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhwIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIbb25lb2ZOZXN0ZWRNZXNzYWdlRXh0ZW5zaW9uOmEKFm9uZW9mX3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYcSABKAlSFG9uZW9mU3RyaW5nRXh0ZW5zaW9uOl8KFW9uZW9mX2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhyIAEoDFITb25lb2ZCeXRlc0V4dGVuc2lvbjpcChNteV9leHRlbnNpb25fc3RyaW5nEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncxgyIAEoCVIRbXlFeHRlbnNpb25TdHJpbmc6VgoQbXlfZXh0ZW5zaW9uX2ludBIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYBSABKAVSDm15RXh0ZW5zaW9uSW50OmgKFnBhY2tlZF9pbnQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYWiADKAVCAhABUhRwYWNrZWRJbnQzMkV4dGVuc2lvbjpoChZwYWNrZWRfaW50NjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGFsgAygDQgIQAVIUcGFja2VkSW50NjRFeHRlbnNpb246agoXcGFja2VkX3VpbnQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXCADKA1CAhABUhVwYWNrZWRVaW50MzJFeHRlbnNpb246agoXcGFja2VkX3VpbnQ2NF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXSADKARCAhABUhVwYWNrZWRVaW50NjRFeHRlbnNpb246agoXcGFja2VkX3NpbnQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXiADKBFCAhABUhVwYWNrZWRTaW50MzJFeHRlbnNpb246agoXcGFja2VkX3NpbnQ2NF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYXyADKBJCAhABUhVwYWNrZWRTaW50NjRFeHRlbnNpb246bAoYcGFja2VkX2ZpeGVkMzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGAgAygHQgIQAVIWcGFja2VkRml4ZWQzMkV4dGVuc2lvbjpsChhwYWNrZWRfZml4ZWQ2NF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYSADKAZCAhABUhZwYWNrZWRGaXhlZDY0RXh0ZW5zaW9uOm4KGXBhY2tlZF9zZml4ZWQzMl9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYiADKA9CAhABUhdwYWNrZWRTZml4ZWQzMkV4dGVuc2lvbjpuChlwYWNrZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGMgAygQQgIQAVIXcGFja2VkU2ZpeGVkNjRFeHRlbnNpb246aAoWcGFja2VkX2Zsb2F0X2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhkIAMoAkICEAFSFHBhY2tlZEZsb2F0RXh0ZW5zaW9uOmoKF3BhY2tlZF9kb3VibGVfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGUgAygBQgIQAVIVcGFja2VkRG91YmxlRXh0ZW5zaW9uOmYKFXBhY2tlZF9ib29sX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhmIAMoCEICEAFSE3BhY2tlZEJvb2xFeHRlbnNpb246jQEKFXBhY2tlZF9lbnVtX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhnIAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bUICEAFSE3BhY2tlZEVudW1FeHRlbnNpb246bgoYdW5wYWNrZWRfaW50MzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYWiADKAVCAhAAUhZ1bnBhY2tlZEludDMyRXh0ZW5zaW9uOm4KGHVucGFja2VkX2ludDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGFsgAygDQgIQAFIWdW5wYWNrZWRJbnQ2NEV4dGVuc2lvbjpwChl1bnBhY2tlZF91aW50MzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXCADKA1CAhAAUhd1bnBhY2tlZFVpbnQzMkV4dGVuc2lvbjpwChl1bnBhY2tlZF91aW50NjRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXSADKARCAhAAUhd1bnBhY2tlZFVpbnQ2NEV4dGVuc2lvbjpwChl1bnBhY2tlZF9zaW50MzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXiADKBFCAhAAUhd1bnBhY2tlZFNpbnQzMkV4dGVuc2lvbjpwChl1bnBhY2tlZF9zaW50NjRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYXyADKBJCAhAAUhd1bnBhY2tlZFNpbnQ2NEV4dGVuc2lvbjpyChp1bnBhY2tlZF9maXhlZDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGAgAygHQgIQAFIYdW5wYWNrZWRGaXhlZDMyRXh0ZW5zaW9uOnIKGnVucGFja2VkX2ZpeGVkNjRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYSADKAZCAhAAUhh1bnBhY2tlZEZpeGVkNjRFeHRlbnNpb246dAobdW5wYWNrZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYYiADKA9CAhAAUhl1bnBhY2tlZFNmaXhlZDMyRXh0ZW5zaW9uOnQKG3VucGFja2VkX3NmaXhlZDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGMgAygQQgIQAFIZdW5wYWNrZWRTZml4ZWQ2NEV4dGVuc2lvbjpuChh1bnBhY2tlZF9mbG9hdF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhkIAMoAkICEABSFnVucGFja2VkRmxvYXRFeHRlbnNpb246cAoZdW5wYWNrZWRfZG91YmxlX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGUgAygBQgIQAFIXdW5wYWNrZWREb3VibGVFeHRlbnNpb246bAoXdW5wYWNrZWRfYm9vbF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhmIAMoCEICEABSFXVucGFja2VkQm9vbEV4dGVuc2lvbjqTAQoXdW5wYWNrZWRfZW51bV9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhnIAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bUICEABSFXVucGFja2VkRW51bUV4dGVuc2lvbjqAAQoOdGVzdF9hbGxfdHlwZXMSLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEh1Z2VGaWVsZE51bWJlcnMY4Kr//wEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IMdGVzdEFsbFR5cGVzOoQBCiV0ZXN0X2V4dGVuc2lvbl9pbnNpZGVfdGFibGVfZXh0ZW5zaW9uEjIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZRgFIAEoBVIhdGVzdEV4dGVuc2lvbkluc2lkZVRhYmxlRXh0ZW5zaW9uQjJIAYABAYgBAZABAfgBAaoCIUdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zLlByb3RvMkq8uAMKBxIFJgDZCAEKog4KAQwSAyYAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtMBIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3ZSB3aWxsIHVzZSBmb3IgdW5pdCB0ZXN0aW5nLgoKIExJTlQ6IEFMTE9XX0dST1VQUywgTEVHQUNZX05BTUVTCgoICgEIEgMqACIKgAEKAggQEgMqACIaZyBTb21lIGdlbmVyaWNfc2VydmljZXMgb3B0aW9uKHMpIGFkZGVkIGF1dG9tYXRpY2FsbHkuCiBTZWU6ICBodHRwOi8vZ28vcHJvdG8yLWdlbmVyaWMtc2VydmljZXMtZGVmYXVsdAoiDCBhdXRvLWFkZGVkCgoICgEIEgMrACQKFwoCCBESAysAJCIMIGF1dG8tYWRkZWQKCggKAQgSAywAIgoXCgIIEhIDLAAiIgwgYXV0by1hZGRlZAoKCAoBCBIDLQAfCgkKAggfEgMtAB8KCQoCAwASAy8ALQrmAQoBAhIDNAAhGtsBIFdlIGRvbid0IHB1dCB0aGlzIGluIGEgcGFja2FnZSB3aXRoaW4gcHJvdG8yIGJlY2F1c2Ugd2UgbmVlZCB0byBtYWtlIHN1cmUKIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGRvZXNuJ3QgZGVwZW5kIG9uIGJlaW5nIGluIHRoZSBwcm90bzIgbmFtZXNwYWNlLgogSW4gdGVzdF91dGlsLmggd2UgZG8gInVzaW5nIG5hbWVzcGFjZSB1bml0dGVzdCA9IHByb3RvYnVmX3VuaXR0ZXN0Ii4KCggKAQgSAzkAHAriAQoCCAkS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BQQMAggBEgSHAxEXCg0KBQQMAggDEgSHAxobCgwKBAQMAgkSBIgDAh4KDQoFBAwCCQQSBIgDAgoKDQoFBAwCCQUSBIgDCxAKDQoFBAwCCQESBIgDERgKDQoFBAwCCQMSBIgDGx0KDAoEBAwCChIEiQMCHgoNCgUEDAIKBBIEiQMCCgoNCgUEDAIKBRIEiQMLEAoNCgUEDAIKARIEiQMRGAoNCgUEDAIKAxIEiQMbHQoMCgQEDAILEgSKAwIeCg0KBQQMAgsEEgSKAwIKCg0KBQQMAgsFEgSKAwsQCg0KBQQMAgsBEgSKAxEYCg0KBQQMAgsDEgSKAxsdCgwKBAQMAgwSBIsDAh4KDQoFBAwCDAQSBIsDAgoKDQoFBAwCDAUSBIsDCxAKDQoFBAwCDAESBIsDERgKDQoFBAwCDAMSBIsDGx0KDAoEBAwCDRIEjAMCHgoNCgUEDAINBBIEjAMCCgoNCgUEDAINBRIEjAMLEAoNCgUEDAINARIEjAMRGAoNCgUEDAINAxIEjAMbHQoMCgQEDAIOEgSNAwIeCg0KBQQMAg4EEgSNAwIKCg0KBQQMAg4FEgSNAwsQCg0KBQQMAg4BEgSNAxEYCg0KBQQMAg4DEgSNAxsdCgwKBAQMAg8SBI4DAh4KDQoFBAwCDwQSBI4DAgoKDQoFBAwCDwUSBI4DCxAKDQoFBAwCDwESBI4DERgKDQoFBAwCDwMSBI4DGx0KDAoEBAwCEBIEjwMCHgoNCgUEDAIQBBIEjwMCCgoNCgUEDAIQBRIEjwMLEAoNCgUEDAIQARIEjwMRGAoNCgUEDAIQAxIEjwMbHQoMCgQEDAIREgSQAwIeCg0KBQQMAhEEEgSQAwIKCg0KBQQMAhEFEgSQAwsQCg0KBQQMAhEBEgSQAxEYCg0KBQQMAhEDEgSQAxsdCgwKBAQMAhISBJEDAh4KDQoFBAwCEgQSBJEDAgoKDQoFBAwCEgUSBJEDCxAKDQoFBAwCEgESBJEDERgKDQoFBAwCEgMSBJEDGx0KDAoEBAwCExIEkgMCHgoNCgUEDAITBBIEkgMCCgoNCgUEDAITBRIEkgMLEAoNCgUEDAITARIEkgMRGAoNCgUEDAITAxIEkgMbHQoMCgQEDAIUEgSTAwIeCg0KBQQMAhQEEgSTAwIKCg0KBQQMAhQFEgSTAwsQCg0KBQQMAhQBEgSTAxEY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nwYRHwoNCgUEMQIBAxIEnwYiJAoNCgUEMQIBCBIEnwYlNQoOCgYEMQIBCAISBJ8GJjQKDAoEBDECAhIEoAYCOAoNCgUEMQICBBIEoAYCCgoNCgUEMQICBRIEoAYLEQoNCgUEMQICARIEoAYSIQoNCgUEMQICAxIEoAYkJgoNCgUEMQICCBIEoAYnNwoOCgYEMQICCAISBKAGKDYKDAoEBDECAxIEoQYCOAoNCgUEMQIDBBIEoQYCCgoNCgUEMQIDBRIEoQYLEQoNCgUEMQIDARIEoQYSIQoNCgUEMQIDAxIEoQYkJgoNCgUEMQIDCBIEoQYnNwoOCgYEMQIDCAISBKEGKDYKDAoEBDECBBIEogYCOAoNCgUEMQIEBBIEogYCCgoNCgUEMQIEBRIEogYLEQoNCgUEMQIEARIEogYSIQoNCgUEMQIEAxIEogYkJgoNCgUEMQIECBIEogYnNwoOCgYEMQIECAISBKIGKDYKDAoEBDECBRIEowYCOAoNCgUEMQIFBBIEowYCCgoNCgUEMQIFBRIEowYLEQoNCgUEMQIFARIEowYSIQoNCgUEMQIFAxIEowYkJgoNCgUEMQIFCBIEowYnNwoOCgYEMQIFCAISBKMGKDYKDAoEBDECBhIEpAYCOgoNCgUEMQIGBBIEpAYCCgoNCgUEMQIGBRIEpAYLEgoNCgUEMQIGARIEpAYTIwoNCgUEMQIGAxIEpAYmKAoNCgUEMQIGCBIEpAYpOQoOCgYEMQIGCAISBKQGKjgKDAoEBDECBxIEpQYCOgoNCgUEMQIHBBIEpQYCCgoNCgUEMQIHBRIEpQYLEgoNCgUEMQIHARIEpQYTIwoNCgUEMQIHAxIEpQYmKAoNCgUEMQIHCBIEpQYpOQoOCgYEMQIHCAISBKUGKjgKDAoEBDECCBIEpgYCPAoNCgUEMQIIBBIEpgYCCgoNCgUEMQIIBRIEpgYLEwoNCgUEMQIIARIEpgYUJQoNCgUEMQIIAxIEpgYoKgoNCgUEMQIICBIEpgYrOwoOCgYEMQIICAISBKYGLDoKDAoEBDECCRIEpwYCPAoNCgUEMQIJBBIEpwYCCgoNCgUEMQIJBRIEpwYLEwoNCgUEMQIJARIEpwYUJQoNCgUEMQIJAxIEpwYoKgoNCgUEMQIJCBIEpwYrOwoOCgYEMQIJCAISBKcGLDoKDAoEBDECChIE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1wgSFAoMCgQFAwJkEgTYCAIXCg0KBQUDAmQBEgTYCAIQCg0KBQUDAmQCEgTYCBMWCr8QCihjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2lzc3VlNjkzNl9hLnByb3RvEg91bml0dGVzdF9pc3N1ZXMaIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvOjMKA29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjQhgMgASgJUgNvcHRCHaoCGlVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9zSoMPCgYSBB4ALAEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADcKCQoCCCUSAyIANwrEAQoCAwASAygAKjK4ASBUaGlzIGZpbGUgaXMgdXNlZCBhcyBwYXJ0IG9mIGEgdW5pdCB0ZXN0IGZvciBpc3N1ZSA2OTM2CiBXZSBkb24ndCBuZWVkIHRvIHVzZSBpdCwgd2UganVzdCBoYXZlIHRvIGltcG9ydCBpdCBpbiBib3RoCiAiZXh0ZW5zaW9uc19pc3N1ZTY5MzZfYi5wcm90byIgYW5kICJleHRlbnNpb25zX2lzc3VlNjkzNl9jLnByb3RvIgoKCQoBBxIEKgAsAQoJCgIHABIDKwIVCgoKAwcAAhIDKgclCgoKAwcABRIDKwIICgoKAwcAARIDKwkMCgoKAwcAAxIDKw8UYgZwcm90bzMK5Q8KKGNzaGFycC9wcm90b3MvdW5pdHRlc3RfaXNzdWU2OTM2X2IucHJvdG8SD3VuaXR0ZXN0X2lzc3VlcxooY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9pc3N1ZTY5MzZfYS5wcm90byIOCgNGb286B4K1GANmb29CHaoCGlVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9zSsYOCgYSBB4ALAEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoJCgIDABIDIgAyCggKAQgSAyQANwoJCgIIJRIDJAA3CpsBCgIEABIEKgAsATKOASBUaGlzIGZpbGUgaXMgdXNlZCBhcyBwYXJ0IG9mIGEgdW5pdCB0ZXN0IGZvciBpc3N1ZSA2OTM2CiBXZSBkb24ndCBuZWVkIHRvIHVzZSBpdCwgd2UganVzdCBoYXZlIHRvIGltcG9ydCBpdCBpbgogInVuaXR0ZXN0X2lzc3VlNjkzNl9jLnByb3RvIgoKCgoDBAABEgMqCAsKCgoDBAAHEgMrAhcKDQoGBAAH0IYDEgMrAhdiBnByb3RvMwrgEAooY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9pc3N1ZTY5MzZfYy5wcm90bxIPdW5pdHRlc3RfaXNzdWVzGihjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2lzc3VlNjkzNl9hLnByb3RvGihjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2lzc3VlNjkzNl9iLnByb3RvIjYKA0JhchImCgNmb28YASABKAsyFC51bml0dGVzdF9pc3N1ZXMuRm9vUgNmb286B4K1GANiYXJCHaoCGlVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9zSu8OCgYSBB4ALgEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoJCgIDABIDIgAyCgkKAgMBEgMjADIKCAoBCBIDJQA3CgkKAgglEgMlADcKggEKAgQAEgQqAC4BMnYgVGhpcyBmaWxlIGlzIHVzZWQgYXMgcGFydCBvZiBhIHVuaXQgdGVzdCBmb3IgaXNzdWUgNjkzNgogV2UgZG9uJ3QgbmVlZCB0byB1c2UgaXQsIHdlIGp1c3QgaGF2ZSB0byBsb2FkIGl0IGF0IHJ1bnRpbWUKCgoKAwQAARIDKggLCgoKAwQABxIDKwIXCg0KBgQAB9CGAxIDKwIXCgsKBAQAAgASAy0CDgoMCgUEAAIABhIDLQIFCgwKBQQAAgABEgMtBgkKDAoFBAACAAMSAy0MDWIGcHJvdG8zCvMYCjRjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zLnByb3RvEilwcm90b2J1Zl91bml0dGVzdF9zZWxmcmVmZXJlbnRpYWxfb3B0aW9ucxogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8iWQoKRm9vT3B0aW9ucxImCgdpbnRfb3B0GAEgASgFQg3KPgoIAcA+Aso+AggDUgZpbnRPcHQSGAoDZm9vGAIgASgFQgbKPgMQ0glSA2ZvbyoJCOgHEICAgIACOkUKC2Jhcl9vcHRpb25zEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjoByABKAVCBMA+0glSCmJhck9wdGlvbnM6dgoLZm9vX29wdGlvbnMSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGOkHIAEoCzI1LnByb3RvYnVmX3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zLkZvb09wdGlvbnNSCmZvb09wdGlvbnM6VgoLZm9vX2ludF9vcHQSNS5wcm90b2J1Zl91bml0dGVzdF9zZWxmcmVmZXJlbnRpYWxfb3B0aW9ucy5Gb29PcHRpb25zGOgHIAEoBVIJZm9vSW50T3B0Oo0BCgtmb29fZm9vX29wdBI1LnByb3RvYnVmX3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zLkZvb09wdGlvbnMY6QcgASgLMjUucHJvdG9idWZfdW5pdHRlc3Rfc2VsZnJlZmVyZW50aWFsX29wdGlvbnMuRm9vT3B0aW9uc1IJZm9vRm9vT3B0QjSqAjFVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvcy5TZWxmcmVmZXJlbnRpYWxPcHRpb25zSrUTCgYSBB4APgEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAMgoJCgIDABIDIgAqCggKAQgSAyQATgoJCgIIJRIDJABOCgoKAgQAEgQmADIBCgoKAwQAARIDJggSClAKBAQAAgASBCgCLAUaQiBDdXN0b20gZmllbGQgb3B0aW9uIHVzZWQgaW4gZGVmaW5pdGlvbiBvZiB0aGUgZXh0ZW5zaW9uIG1lc3NhZ2UuCgoMCgUEAAIABBIDKAIKCgwKBQQAAgAFEgMoCxAKDAoFBAACAAESAygRGAoMCgUEAAIAAxIDKBscCg0KBQQAAgAIEgQoHSwECg8KBwQAAgAI6QcSBCgeLAMKVQoEBAACARIDLwI5GkggQ3VzdG9tIGZpZWxkIG9wdGlvbiB1c2VkIGluIGRlZmluaXRpb24gb2YgdGhlIGN1c3RvbSBvcHRpb24ncyBtZXNzYWdlLgoKDAoFBAACAQQSAy8CCgoMCgUEAAIBBRIDLwsQCgwKBQQAAgEBEgMvERQKDAoFBAACAQMSAy8XGAoMCgUEAAIBCBIDLxk4Cg4KBwQAAgEI6QcSAy8aNwoKCgMEAAUSAzECGQoLCgQEAAUAEgMxDRgKDAoFBAAFAAESAzENEQoMCgUEAAUAAhIDMRUYCgkKAQcSBDQAOQEKTQoCBwASAzYCOxpCIEN1c3RvbSBmaWVsZCBvcHRpb24gdXNlZCBvbiB0aGUgZGVmaW5pdGlvbiBvZiB0aGF0IGZpZWxkIG9wdGlvbi4KCgoKAwcAAhIDNAcjCgoKAwcABBIDNgIKCgoKAwcABRIDNgsQCgoKAwcAARIDNhEcCgoKAwcAAxIDNh8jCgoKAwcACBIDNiQ6CgwKBQcACOgHEgM2JTkKCQoCBwESAzgCKQoKCgMHAQISAzQHIwoKCgMHAQQSAzgCCgoKCgMHAQYSAzgLFQoKCgMHAQESAzgWIQoKCgMHAQMSAzgkKAoJCgEHEgQ7AD4BCgkKAgcCEgM8AiQKCgoDBwICEgM7BxEKCgoDBwIEEgM8AgoKCgoDBwIFEgM8CxAKCgoDBwIBEgM8ERwKCgoDBwIDEgM8HyMKCQoCBwMSAz0CKQoKCgMHAwISAzsHEQoKCgMHAwQSAz0CCgoKCgMHAwYSAz0LFQoKCgMHAwESAz0WIQoKCgMHAwMSAz0kKArYLQoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjYKA0FueRIZCgh0eXBlX3VybBgBIAEoCVIHdHlwZVVybBIUCgV2YWx1ZRgCIAEoDFIFdmFsdWVCdgoTY29tLmdvb2dsZS5wcm90b2J1ZkIIQW55UHJvdG9QAVosZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vYW55cGKiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNK8SsKBxIFHgCgAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiAEMKCQoCCAsSAyIAQwoICgEIEgMjACwKCQoCCAESAyMALAoICgEIEgMkACkKCQoCCAgSAyQAKQoICgEIEgMlACIKCQoCCAoSAyUAIgoICgEIEgMmACEKCQoCCCQSAyYAIQoICgEIEgMnADsKCQoCCCUSAycAOwr1EQoCBAASBX8AoAEBGucRIGBBbnlgIGNvbnRhaW5zIGFuIGFyYml0cmFyeSBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlIGFsb25nIHdpdGggYQogVVJMIHRoYXQgZGVzY3JpYmVzIHRoZSB0eXBlIG9mIHRoZSBzZXJpYWxpemVkIG1lc3NhZ2UuCgogUHJvdG9idWYgbGlicmFyeSBwcm92aWRlcyBzdXBwb3J0IHRvIHBhY2svdW5wYWNrIEFueSB2YWx1ZXMgaW4gdGhlIGZvcm0KIG9mIHV0aWxpdHkgZnVuY3Rpb25zIG9yIGFkZGl0aW9uYWwgZ2VuZXJhdGVkIG1ldGhvZHMgb2YgdGhlIEFueSB0eXBlLgoKIEV4YW1wbGUgMTogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBDKysuCgogICAgIEZvbyBmb28gPSAuLi47CiAgICAgQW55IGFueTsKICAgICBhbnkuUGFja0Zyb20oZm9vKTsKICAgICAuLi4KICAgICBpZiAoYW55LlVucGFja1RvKCZmb28pKSB7CiAgICAgICAuLi4KICAgICB9CgogRXhhbXBsZSAyOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEphdmEuCgogICAgIEZvbyBmb28gPSAuLi47CiAgICAgQW55IGFueSA9IEFueS5wYWNrKGZvbyk7CiAgICAgLi4uCiAgICAgaWYgKGFueS5pcyhGb28uY2xhc3MpKSB7CiAgICAgICBmb28gPSBhbnkudW5wYWNrKEZvby5jbGFzcyk7CiAgICAgfQogICAgIC8vIG9yIC4uLgogICAgIGlmIChhbnkuaXNTYW1lVHlwZUFzKEZvby5nZXREZWZhdWx0SW5zdGFuY2UoKSkpIHsKICAgICAgIGZvbyA9IGFueS51bnBhY2soRm9vLmdldERlZmF1bHRJbnN0YW5jZSgpKTsKICAgICB9CgogRXhhbXBsZSAzOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIFB5dGhvbi4KCiAgICAgZm9vID0gRm9vKC4uLikKICAgICBhbnkgPSBBbnkoKQogICAgIGFueS5QYWNrKGZvbykKICAgICAuLi4KICAgICBpZiBhbnkuSXMoRm9vLkRFU0NSSVBUT1IpOgogICAgICAgYW55LlVucGFjayhmb28pCiAgICAgICAuLi4KCiBFeGFtcGxlIDQ6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gR28KCiAgICAgIGZvbyA6PSAmcGIuRm9vey4uLn0KICAgICAgYW55LCBlcnIgOj0gYW55cGIuTmV3KGZvbykKICAgICAgaWYgZXJyICE9IG5pbCB7CiAgICAgICAgLi4uCiAgICAgIH0KICAgICAgLi4uCiAgICAgIGZvbyA6PSAmcGIuRm9ve30KICAgICAgaWYgZXJyIDo9IGFueS5Vbm1hcnNoYWxUbyhmb28pOyBlcnIgIT0gbmlsIHsKICAgICAgICAuLi4KICAgICAgfQoKIFRoZSBwYWNrIG1ldGhvZHMgcHJvdmlkZWQgYnkgcHJvdG9idWYgbGlicmFyeSB3aWxsIGJ5IGRlZmF1bHQgdXNlCiAndHlwZS5nb29nbGVhcGlzLmNvbS9mdWxsLnR5cGUubmFtZScgYXMgdGhlIHR5cGUgVVJMIGFuZCB0aGUgdW5wYWNrCiBtZXRob2RzIG9ubHkgdXNlIHRoZSBmdWxseSBxdWFsaWZpZWQgdHlwZSBuYW1lIGFmdGVyIHRoZSBsYXN0ICcvJwogaW4gdGhlIHR5cGUgVVJMLCBmb3IgZXhhbXBsZSAiZm9vLmJhci5jb20veC95LnoiIHdpbGwgeWllbGQgdHlwZQogbmFtZSAieS56Ii4KCiBKU09OCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYW4gYEFueWAgdmFsdWUgdXNlcyB0aGUgcmVndWxhcgogcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlc2VyaWFsaXplZCwgZW1iZWRkZWQgbWVzc2FnZSwgd2l0aCBhbgogYWRkaXRpb25hbCBmaWVsZCBgQHR5cGVgIHdoaWNoIGNvbnRhaW5zIHRoZSB0eXBlIFVSTC4gRXhhbXBsZToKCiAgICAgcGFja2FnZSBnb29nbGUucHJvZmlsZTsKICAgICBtZXNzYWdlIFBlcnNvbiB7CiAgICAgICBzdHJpbmcgZmlyc3RfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgbGFzdF9uYW1lID0gMjsKICAgICB9CgogICAgIHsKICAgICAgICJAdHlwZSI6ICJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wcm9maWxlLlBlcnNvbiIsCiAgICAgICAiZmlyc3ROYW1lIjogPHN0cmluZz4sCiAgICAgICAibGFzdE5hbWUiOiA8c3RyaW5nPgogICAgIH0KCiBJZiB0aGUgZW1iZWRkZWQgbWVzc2FnZSB0eXBlIGlzIHdlbGwta25vd24gYW5kIGhhcyBhIGN1c3RvbSBKU09OCiByZXByZXNlbnRhdGlvbiwgdGhhdCByZXByZXNlbnRhdGlvbiB3aWxsIGJlIGVtYmVkZGVkIGFkZGluZyBhIGZpZWxkCiBgdmFsdWVgIHdoaWNoIGhvbGRzIHRoZSBjdXN0b20gSlNPTiBpbiBhZGRpdGlvbiB0byB0aGUgYEB0eXBlYAogZmllbGQuIEV4YW1wbGUgKGZvciBtZXNzYWdlIFtnb29nbGUucHJvdG9idWYuRHVyYXRpb25dW10pOgoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvdG9idWYuRHVyYXRpb24iLAogICAgICAgInZhbHVlIjogIjEuMjEycyIKICAgICB9CgoKCgoDBAABEgN/CAsK1woKBAQAAgASBJwBAhYayAogQSBVUkwvcmVzb3VyY2UgbmFtZSB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQKIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlLiBUaGlzIHN0cmluZyBtdXN0IGNvbnRhaW4gYXQgbGVhc3QKIG9uZSAiLyIgY2hhcmFjdGVyLiBUaGUgbGFzdCBzZWdtZW50IG9mIHRoZSBVUkwncyBwYXRoIG11c3QgcmVwcmVzZW50CiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHR5cGUgKGFzIGluCiBgcGF0aC9nb29nbGUucHJvdG9idWYuRHVyYXRpb25gKS4gVGhlIG5hbWUgc2hvdWxkIGJlIGluIGEgY2Fub25pY2FsIGZvcm0KIChlLmcuLCBsZWFkaW5nICIuIiBpcyBub3QgYWNjZXB0ZWQpLgoKIEluIHByYWN0aWNlLCB0ZWFtcyB1c3VhbGx5IHByZWNvbXBpbGUgaW50byB0aGUgYmluYXJ5IGFsbCB0eXBlcyB0aGF0IHRoZXkKIGV4cGVjdCBpdCB0byB1c2UgaW4gdGhlIGNvbnRleHQgb2YgQW55LiBIb3dldmVyLCBmb3IgVVJMcyB3aGljaCB1c2UgdGhlCiBzY2hlbWUgYGh0dHBgLCBgaHR0cHNgLCBvciBubyBzY2hlbWUsIG9uZSBjYW4gb3B0aW9uYWxseSBzZXQgdXAgYSB0eXBlCiBzZXJ2ZXIgdGhhdCBtYXBzIHR5cGUgVVJMcyB0byBtZXNzYWdlIGRlZmluaXRpb25zIGFzIGZvbGxvd3M6CgogKiBJZiBubyBzY2hlbWUgaXMgcHJvdmlkZWQsIGBodHRwc2AgaXMgYXNzdW1lZC4KICogQW4gSFRUUCBHRVQgb24gdGhlIFVSTCBtdXN0IHlpZWxkIGEgW2dvb2dsZS5wcm90b2J1Zi5UeXBlXVtdCiAgIHZhbHVlIGluIGJpbmFyeSBmb3JtYXQsIG9yIHByb2R1Y2UgYW4gZXJyb3IuCiAqIEFwcGxpY2F0aW9ucyBhcmUgYWxsb3dlZCB0byBjYWNoZSBsb29rdXAgcmVzdWx0cyBiYXNlZCBvbiB0aGUKICAgVVJMLCBvciBoYXZlIHRoZW0gcHJlY29tcGlsZWQgaW50byBhIGJpbmFyeSB0byBhdm9pZCBhbnkKICAgbG9va3VwLiBUaGVyZWZvcmUsIGJpbmFyeSBjb21wYXRpYmlsaXR5IG5lZWRzIHRvIGJlIHByZXNlcnZlZAogICBvbiBjaGFuZ2VzIHRvIHR5cGVzLiAoVXNlIHZlcnNpb25lZCB0eXBlIG5hbWVzIHRvIG1hbmFnZQogICBicmVha2luZyBjaGFuZ2VzLikKCiBOb3RlOiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGN1cnJlbnRseSBhdmFpbGFibGUgaW4gdGhlIG9mZmljaWFsCiBwcm90b2J1ZiByZWxlYXNlLCBhbmQgaXQgaXMgbm90IHVzZWQgZm9yIHR5cGUgVVJMcyBiZWdpbm5pbmcgd2l0aAogdHlwZS5nb29nbGVhcGlzLmNvbS4KCiBTY2hlbWVzIG90aGVyIHRoYW4gYGh0dHBgLCBgaHR0cHNgIChvciB0aGUgZW1wdHkgc2NoZW1lKSBtaWdodCBiZQogdXNlZCB3aXRoIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHNlbWFudGljcy4KCgoNCgUEAAIABRIEnAECCAoNCgUEAAIAARIEnAEJEQoNCgUEAAIAAxIEnAEUFQpXCgQEAAIBEgSfAQISGkkgTXVzdCBiZSBhIHZhbGlkIHNlcmlhbGl6ZWQgcHJvdG9jb2wgYnVmZmVyIG9mIHRoZSBhYm92ZSBzcGVjaWZpZWQgdHlwZS4KCg0KBQQAAgEFEgSfAQIHCg0KBQQAAgEBEgSfAQgNCg0KBQQAAgEDEgSfARARYgZwcm90bzMKvhIKJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIiwKDVNvdXJjZUNvbnRleHQSGwoJZmlsZV9uYW1lGAEgASgJUghmaWxlTmFtZUKKAQoTY29tLmdvb2dsZS5wcm90b2J1ZkISU291cmNlQ29udGV4dFByb3RvUAFaNmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3NvdXJjZWNvbnRleHRwYqICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rBEAoGEgQeAC8BCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAsCgkKAggBEgMiACwKCAoBCBIDIwAzCgkKAggIEgMjADMKCAoBCBIDJAAiCgkKAggKEgMkACIKCAoBCBIDJQAhCgkKAggkEgMlACEKCAoBCBIDJgA7CgkKAgglEgMmADsKCAoBCBIDJwBNCgkKAggLEgMnAE0KgwEKAgQAEgQrAC8BGncgYFNvdXJjZUNvbnRleHRgIHJlcHJlc2VudHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNvdXJjZSBvZiBhCiBwcm90b2J1ZiBlbGVtZW50LCBsaWtlIHRoZSBmaWxlIGluIHdoaWNoIGl0IGlzIGRlZmluZWQuCgoKCgMEAAESAysIFQqjAQoEBAACABIDLgIXGpUBIFRoZSBwYXRoLXF1YWxpZmllZCBuYW1lIG9mIHRoZSAucHJvdG8gZmlsZSB0aGF0IGNvbnRhaW5lZCB0aGUgYXNzb2NpYXRlZAogcHJvdG9idWYgZWxlbWVudC4gIEZvciBleGFtcGxlOiBgImdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90byJgLgoKDAoFBAACAAUSAy4CCAoMCgUEAAIAARIDLgkSCgwKBQQAAgADEgMuFRZiBnByb3RvMwr7SQoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8SD2dvb2dsZS5wcm90b2J1ZhoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxokZ29vZ2xlL3Byb3RvYnVmL3NvdXJjZV9jb250ZXh0LnByb3RvIqcCCgRUeXBlEhIKBG5hbWUYASABKAlSBG5hbWUSLgoGZmllbGRzGAIgAygLMhYuZ29vZ2xlLnByb3RvYnVmLkZpZWxkUgZmaWVsZHMSFgoGb25lb2ZzGAMgAygJUgZvbmVvZnMSMQoHb3B0aW9ucxgEIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSRQoOc291cmNlX2NvbnRleHQYBSABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIvCgZzeW50YXgYBiABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgSGAoHZWRpdGlvbhgHIAEoCVIHZWRpdGlvbiK0BgoFRmllbGQSLwoEa2luZBgBIAEoDjIbLmdvb2dsZS5wcm90b2J1Zi5GaWVsZC5LaW5kUgRraW5kEkQKC2NhcmRpbmFsaXR5GAIgASgOMiIuZ29vZ2xlLnByb3RvYnVmLkZpZWxkLkNhcmRpbmFsaXR5UgtjYXJkaW5hbGl0eRIWCgZudW1iZXIYAyABKAVSBm51bWJlchISCgRuYW1lGAQgASgJUgRuYW1lEhkKCHR5cGVfdXJsGAYgASgJUgd0eXBlVXJsEh8KC29uZW9mX2luZGV4GAcgASgFUgpvbmVvZkluZGV4EhYKBnBhY2tlZBgIIAEoCFIGcGFja2VkEjEKB29wdGlvbnMYCSADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEhsKCWpzb25fbmFtZRgKIAEoCVIIanNvbk5hbWUSIwoNZGVmYXVsdF92YWx1ZRgLIAEoCVIMZGVmYXVsdFZhbHVlIsgCCgRLaW5kEhAKDFRZUEVfVU5LTk9XThAAEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJ0CgtDYXJkaW5hbGl0eRIXChNDQVJESU5BTElUWV9VTktOT1dOEAASGAoUQ0FSRElOQUxJVFlfT1BUSU9OQUwQARIYChRDQVJESU5BTElUWV9SRVFVSVJFRBACEhgKFENBUkRJTkFMSVRZX1JFUEVBVEVEEAMimQIKBEVudW0SEgoEbmFtZRgBIAEoCVIEbmFtZRI4CgllbnVtdmFsdWUYAiADKAsyGi5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlUgllbnVtdmFsdWUSMQoHb3B0aW9ucxgDIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSRQoOc291cmNlX2NvbnRleHQYBCABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIvCgZzeW50YXgYBSABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgSGAoHZWRpdGlvbhgGIAEoCVIHZWRpdGlvbiJqCglFbnVtVmFsdWUSEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAiABKAVSBm51bWJlchIxCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucyJICgZPcHRpb24SEgoEbmFtZRgBIAEoCVIEbmFtZRIqCgV2YWx1ZRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBXZhbHVlKkMKBlN5bnRheBIRCg1TWU5UQVhfUFJPVE8yEAASEQoNU1lOVEFYX1BST1RPMxABEhMKD1NZTlRBWF9FRElUSU9OUxACQnsKE2NvbS5nb29nbGUucHJvdG9idWZCCVR5cGVQcm90b1ABWi1nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi90eXBlcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKjTsKBxIFHgDAAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT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CgMFAAESBLkBBQsKIAoEBQACABIEuwECFBoSIFN5bnRheCBgcHJvdG8yYC4KCg0KBQUAAgABEgS7AQIPCg0KBQUAAgACEgS7ARITCiAKBAUAAgESBL0BAhQaEiBTeW50YXggYHByb3RvM2AuCgoNCgUFAAIBARIEvQECDwoNCgUFAAIBAhIEvQESEwoiCgQFAAICEgS/AQIWGhQgU3ludGF4IGBlZGl0aW9uc2AuCgoNCgUFAAICARIEvwECEQoNCgUFAAICAhIEvwEUFWIGcHJvdG8zCptDChlnb29nbGUvcHJvdG9idWYvYXBpLnByb3RvEg9nb29nbGUucHJvdG9idWYaJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90bxoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8iwQIKA0FwaRISCgRuYW1lGAEgASgJUgRuYW1lEjEKB21ldGhvZHMYAiADKAsyFy5nb29nbGUucHJvdG9idWYuTWV0aG9kUgdtZXRob2RzEjEKB29wdGlvbnMYAyADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEhgKB3ZlcnNpb24YBCABKAlSB3ZlcnNpb24SRQoOc291cmNlX2NvbnRleHQYBSABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIuCgZtaXhpbnMYBiADKAsyFi5nb29nbGUucHJvdG9idWYuTWl4aW5SBm1peGlucxIvCgZzeW50YXgYByABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgisgIKBk1ldGhvZBISCgRuYW1lGAEgASgJUgRuYW1lEigKEHJlcXVlc3RfdHlwZV91cmwYAiABKAlSDnJlcXVlc3RUeXBlVXJsEisKEXJlcXVlc3Rfc3RyZWFtaW5nGAMgASgIUhByZXF1ZXN0U3RyZWFtaW5nEioKEXJlc3BvbnNlX3R5cGVfdXJsGAQgASgJUg9yZXNwb25zZVR5cGVVcmwSLQoScmVzcG9uc2Vfc3RyZWFtaW5nGAUgASgIUhFyZXNwb25zZVN0cmVhbWluZxIxCgdvcHRpb25zGAYgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxIvCgZzeW50YXgYByABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgiLwoFTWl4aW4SEgoEbmFtZRgBIAEoCVIEbmFtZRISCgRyb290GAIgASgJUgRyb290QnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFwaVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FwaXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSoA8CgcSBR4AzgEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCQoCAwASAyIALgoJCgIDARIDIwAkCggKAQgSAyUALAoJCgIIARIDJQAsCggKAQgSAyYAKQoJCgIICBIDJgApCggKAQgSAycAIgoJCgIIChIDJwAiCggKAQgSAygAIQoJCgIIJBIDKAAhCggKAQgSAykAOwoJCgIIJRIDKQA7CggKAQgSAyoAQwoJCgIICxIDKgBDCqsECgIEABIENQBfARqeBCBBcGkgaXMgYSBsaWdodC13ZWlnaHQgZGVzY3JpcHRvciBmb3IgYW4gQVBJIEludGVyZmFjZS4KCiBJbnRlcmZhY2VzIGFyZSBhbHNvIGRlc2NyaWJlZCBhcyAicHJvdG9jb2wgYnVmZmVyIHNlcnZpY2VzIiBpbiBzb21lIGNvbnRleHRzLAogc3VjaCBhcyBieSB0aGUgInNlcnZpY2UiIGtleXdvcmQgaW4gYSAucHJvdG8gZmlsZSwgYnV0IHRoZXkgYXJlIGRpZmZlcmVudAogZnJvbSBBUEkgU2VydmljZXMsIHdoaWNoIHJlcHJlc2VudCBhIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIGFuIGludGVyZmFjZQogYXMgb3Bwb3NlZCB0byBzaW1wbHkgYSBkZXNjcmlwdGlvbiBvZiBtZXRob2RzIGFuZCBiaW5kaW5ncy4gVGhleSBhcmUgYWxzbwogc29tZXRpbWVzIHNpbXBseSByZWZlcnJlZCB0byBhcyAiQVBJcyIgaW4gb3RoZXIgY29udGV4dHMsIHN1Y2ggYXMgdGhlIG5hbWUgb2YKIHRoaXMgbWVzc2FnZSBpdHNlbGYuIFNlZSBodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vYXBpcy9kZXNpZ24vZ2xvc3NhcnkgZm9yCiBkZXRhaWxlZCB0ZXJtaW5vbG9neS4KCgoKAwQAARIDNQgLCnsKBAQAAgASAzgCEhpuIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGlzIGludGVyZmFjZSwgaW5jbHVkaW5nIHBhY2thZ2UgbmFtZQogZm9sbG93ZWQgYnkgdGhlIGludGVyZmFjZSdzIHNpbXBsZSBuYW1lLgoKDAoFBAACAAUSAzgCCAoMCgUEAAIAARIDOAkNCgwKBQQAAgADEgM4EBEKQwoEBAACARIDOwIeGjYgVGhlIG1ldGhvZHMgb2YgdGhpcyBpbnRlcmZhY2UsIGluIHVuc3BlY2lmaWVkIG9yZGVyLgoKDAoFBAACAQQSAzsCCgoMCgUEAAIBBhIDOwsRCgwKBQQAAgEBEgM7EhkKDAoFBAACAQMSAzscHQo2CgQEAAICEgM+Ah4aKSBBbnkgbWV0YWRhdGEgYXR0YWNoZWQgdG8gdGhlIGludGVyZmFjZS4KCgwKBQQAAgIEEgM+AgoKDAoFBAACAgYSAz4LEQoMCgUEAAICARIDPhIZCgwKBQQAAgIDEgM+HB0KgQgKBAQAAgMSA1QCFRrzByBBIHZlcnNpb24gc3RyaW5nIGZvciB0aGlzIGludGVyZmFjZS4gSWYgc3BlY2lmaWVkLCBtdXN0IGhhdmUgdGhlIGZvcm0KIGBtYWpvci12ZXJzaW9uLm1pbm9yLXZlcnNpb25gLCBhcyBpbiBgMS4xMGAuIElmIHRoZSBtaW5vciB2ZXJzaW9uIGlzCiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byB6ZXJvLiBJZiB0aGUgZW50aXJlIHZlcnNpb24gZmllbGQgaXMgZW1wdHksIHRoZQogbWFqb3IgdmVyc2lvbiBpcyBkZXJpdmVkIGZyb20gdGhlIHBhY2thZ2UgbmFtZSwgYXMgb3V0bGluZWQgYmVsb3cuIElmIHRoZQogZmllbGQgaXMgbm90IGVtcHR5LCB0aGUgdmVyc2lvbiBpbiB0aGUgcGFja2FnZSBuYW1lIHdpbGwgYmUgdmVyaWZpZWQgdG8gYmUKIGNvbnNpc3RlbnQgd2l0aCB3aGF0IGlzIHByb3ZpZGVkIGhlcmUuCgogVGhlIHZlcnNpb25pbmcgc2NoZW1hIHVzZXMgW3NlbWFudGljCiB2ZXJzaW9uaW5nXShodHRwOi8vc2VtdmVyLm9yZykgd2hlcmUgdGhlIG1ham9yIHZlcnNpb24gbnVtYmVyCiBpbmRpY2F0ZXMgYSBicmVha2luZyBjaGFuZ2UgYW5kIHRoZSBtaW5vciB2ZXJzaW9uIGFuIGFkZGl0aXZlLAogbm9uLWJyZWFraW5nIGNoYW5nZS4gQm90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ZG9jdW1lbnRhdGlvbgogICBzdHJpbmcgb2YgdGhlIHJlZGVjbGFyZWQgbWV0aG9kIGlzIGVtcHR5LCBpdCB3aWxsIGJlIGluaGVyaXRlZAogICBmcm9tIHRoZSBvcmlnaW5hbCBtZXRob2QuCgogLSBFYWNoIGFubm90YXRpb24gYmVsb25naW5nIHRvIHRoZSBzZXJ2aWNlIGNvbmZpZyAoaHR0cCwKICAgdmlzaWJpbGl0eSkgd2hpY2ggaXMgbm90IHNldCBpbiB0aGUgcmVkZWNsYXJlZCBtZXRob2Qgd2lsbCBiZQogICBpbmhlcml0ZWQuCgogLSBJZiBhbiBodHRwIGFubm90YXRpb24gaXMgaW5oZXJpdGVkLCB0aGUgcGF0aCBwYXR0ZXJuIHdpbGwgYmUKICAgbW9kaWZpZWQgYXMgZm9sbG93cy4gQW55IHZlcnNpb24gcHJlZml4IHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlCiAgIHZlcnNpb24gb2YgdGhlIGluY2x1ZGluZyBpbnRlcmZhY2UgcGx1cyB0aGUgW3Jvb3RdW10gcGF0aCBpZgogICBzcGVjaWZpZWQuCgogRXhhbXBsZSBvZiBhIHNpbXBsZSBtaXhpbjoKCiAgICAgcGFja2FnZSBnb29nbGUuYWNsLnYxOwogICAgIHNlcnZpY2UgQWNjZXNzQ29udHJvbCB7CiAgICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgQUNMIG9iamVjdC4KICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YxL3tyZXNvdXJjZT0qKn06Z2V0QWNsIjsKICAgICAgIH0KICAgICB9CgogICAgIHBhY2thZ2UgZ29vZ2xlLnN0b3JhZ2UudjI7CiAgICAgc2VydmljZSBTdG9yYWdlIHsKICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKTsKCiAgICAgICAvLyBHZXQgYSBkYXRhIHJlY29yZC4KICAgICAgIHJwYyBHZXREYXRhKEdldERhdGFSZXF1ZXN0KSByZXR1cm5zIChEYXRhKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YyL3tyZXNvdXJjZT0qKn0iOwogICAgICAgfQogICAgIH0KCiBFeGFtcGxlIG9mIGEgbWl4aW4gY29uZmlndXJhdGlvbjoKCiAgICAgYXBpczoKICAgICAtIG5hbWU6IGdvb2dsZS5zdG9yYWdlLnYyLlN0b3JhZ2UKICAgICAgIG1peGluczoKICAgICAgIC0gbmFtZTogZ29vZ2xlLmFjbC52MS5BY2Nlc3NDb250cm9sCgogVGhlIG1peGluIGNvbnN0cnVjdCBpbXBsaWVzIHRoYXQgYWxsIG1ldGhvZHMgaW4gYEFjY2Vzc0NvbnRyb2xgIGFyZQogYWxzbyBkZWNsYXJlZCB3aXRoIHNhbWUgbmFtZSBhbmQgcmVxdWVzdC9yZXNwb25zZSB0eXBlcyBpbgogYFN0b3JhZ2VgLiBBIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yIG9yIGFubm90YXRpb24gcHJvY2Vzc29yIHdpbGwKIHNlZSB0aGUgZWZmZWN0aXZlIGBTdG9yYWdlLkdldEFjbGAgbWV0aG9kIGFmdGVyIGluaGVyaXRpbmcKIGRvY3VtZW50YXRpb24gYW5kIGFubm90YXRpb25zIGFzIGZvbGxvd3M6CgogICAgIHNlcnZpY2UgU3RvcmFnZSB7CiAgICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgQUNMIG9iamVjdC4KICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YyL3tyZXNvdXJjZT0qKn06Z2V0QWNsIjsKICAgICAgIH0KICAgICAgIC4uLgogICAgIH0KCiBOb3RlIGhvdyB0aGUgdmVyc2lvbiBpbiB0aGUgcGF0aCBwYXR0ZXJuIGNoYW5nZWQgZnJvbSBgdjFgIHRvIGB2MmAuCgogSWYgdGhlIGByb290YCBmaWVsZCBpbiB0aGUgbWl4aW4gaXMgc3BlY2lmaWVkLCBpdCBzaG91bGQgYmUgYQogcmVsYXRpdmUgcGF0aCB1bmRlciB3aGljaCBpbmhlcml0ZWQgSFRUUCBwYXRocyBhcmUgcGxhY2VkLiBFeGFtcGxlOgoKICAgICBhcGlzOgogICAgIC0gbmFtZTogZ29vZ2xlLnN0b3JhZ2UudjIuU3RvcmFnZQogICAgICAgbWl4aW5zOgogICAgICAgLSBuYW1lOiBnb29nbGUuYWNsLnYxLkFjY2Vzc0NvbnRyb2wKICAgICAgICAgcm9vdDogYWNscwoKIFRoaXMgaW1wbGllcyB0aGUgZm9sbG93aW5nIGluaGVyaXRlZCBIVFRQIGFubm90YXRpb246CgogICAgIHNlcnZpY2UgU3RvcmFnZSB7CiAgICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgQUNMIG9iamVjdC4KICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YyL2FjbHMve3Jlc291cmNlPSoqfTpnZXRBY2wiOwogICAgICAgfQogICAgICAgLi4uCiAgICAgfQoKCwoDBAIBEgTHAQgNCkwKBAQCAgASBMkBAhIaPiBUaGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIGludGVyZmFjZSB3aGljaCBpcyBpbmNsdWRlZC4KCg0KBQQCAgAFEgTJAQIICg0KBQQCAgABEgTJAQkNCg0KBQQCAgADEgTJARARClsKBAQCAgESBM0BAhIaTSBJZiBub24tZW1wdHkgc3BlY2lmaWVzIGEgcGF0aCB1bmRlciB3aGljaCBpbmhlcml0ZWQgSFRUUCBwYXRocwogYXJlIHJvb3RlZC4KCg0KBQQCAgEFEgTNAQIICg0KBQQCAgEBEgTNAQkNCg0KBQQCAgEDEgTNARARYgZwcm90bzMK1yUKHmdvb2dsZS9wcm90b2J1Zi9kdXJhdGlvbi5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjoKCER1cmF0aW9uEhgKB3NlY29uZHMYASABKANSB3NlY29uZHMSFAoFbmFub3MYAiABKAVSBW5hbm9zQoMBChNjb20uZ29vZ2xlLnByb3RvYnVmQg1EdXJhdGlvblByb3RvUAFaMWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2R1cmF0aW9ucGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNK2SMKBhIEHgByAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAHwoJCgIIHxIDIgAfCggKAQgSAyMASAoJCgIICxIDIwBICggKAQgSAyQALAoJCgIIARIDJAAsCggKAQgSAyUALgoJCgIICBIDJQAuCggKAQgSAyYAIgoJCgIIChIDJgAiCggKAQgSAycAIQoJCgIIJBIDJwAhCggKAQgSAygAOwoJCgIIJRIDKAA7Cp0QCgIEABIEZQByARqQECBBIER1cmF0aW9uIHJlcHJlc2VudHMgYSBzaWduZWQsIGZpeGVkLWxlbmd0aCBzcGFuIG9mIHRpbWUgcmVwcmVzZW50ZWQKIGFzIGEgY291bnQgb2Ygc2Vjb25kcyBhbmQgZnJhY3Rpb25zIG9mIHNlY29uZHMgYXQgbmFub3NlY29uZAogcmVzb2x1dGlvbi4gSXQgaXMgaW5kZXBlbmRlbnQgb2YgYW55IGNhbGVuZGFyIGFuZCBjb25jZXB0cyBsaWtlICJkYXkiCiBvciAibW9udGgiLiBJdCBpcyByZWxhdGVkIHRvIFRpbWVzdGFtcCBpbiB0aGF0IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4KIHR3byBUaW1lc3RhbXAgdmFsdWVzIGlzIGEgRHVyYXRpb24gYW5kIGl0IGNhbiBiZSBhZGRlZCBvciBzdWJ0cmFjdGVkCiBmcm9tIGEgVGltZXN0YW1wLiBSYW5nZSBpcyBhcHByb3hpbWF0ZWx5ICstMTAsMDAwIHllYXJzLgoKICMgRXhhbXBsZXMKCiBFeGFtcGxlIDE6IENvbXB1dGUgRHVyYXRpb24gZnJvbSB0d28gVGltZXN0YW1wcyBpbiBwc2V1ZG8gY29kZS4KCiAgICAgVGltZXN0YW1wIHN0YXJ0ID0gLi4uOwogICAgIFRpbWVzdGFtcCBlbmQgPSAuLi47CiAgICAgRHVyYXRpb24gZHVyYXRpb24gPSAuLi47CgogICAgIGR1cmF0aW9uLnNlY29uZHMgPSBlbmQuc2Vjb25kcyAtIHN0YXJ0LnNlY29uZHM7CiAgICAgZHVyYXRpb24ubmFub3MgPSBlbmQubmFub3MgLSBzdGFydC5uYW5vczsKCiAgICAgaWYgKGR1cmF0aW9uLnNlY29uZHMgPCAwICYmIGR1cmF0aW9uLm5hbm9zID4gMCkgewogICAgICAgZHVyYXRpb24uc2Vjb25kcyArPSAxOwogICAgICAgZHVyYXRpb24ubmFub3MgLT0gMTAwMDAwMDAwMDsKICAgICB9IGVsc2UgaWYgKGR1cmF0aW9uLnNlY29uZHMgPiAwICYmIGR1cmF0aW9uLm5hbm9zIDwgMCkgewogICAgICAgZHVyYXRpb24uc2Vjb25kcyAtPSAxOwogICAgICAgZHVyYXRpb24ubmFub3MgKz0gMTAwMDAwMDAwMDsKICAgICB9CgogRXhhbXBsZSAyOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFRpbWVzdGFtcCArIER1cmF0aW9uIGluIHBzZXVkbyBjb2RlLgoKICAgICBUaW1lc3RhbXAgc3RhcnQgPSAuLi47CiAgICAgRHVyYXRpb24gZHVyYXRpb24gPSAuLi47CiAgICAgVGltZXN0YW1wIGVuZCA9IC4uLjsKCiAgICAgZW5kLnNlY29uZHMgPSBzdGFydC5zZWNvbmRzICsgZHVyYXRpb24uc2Vjb25kczsKICAgICBlbmQubmFub3MgPSBzdGFydC5uYW5vcyArIGR1cmF0aW9uLm5hbm9zOwoKICAgICBpZiAoZW5kLm5hbm9zIDwgMCkgewogICAgICAgZW5kLnNlY29uZHMgLT0gMTsKICAgICAgIGVuZC5uYW5vcyArPSAxMDAwMDAwMDAwOwogICAgIH0gZWxzZSBpZiAoZW5kLm5hbm9zID49IDEwMDAwMDAwMDApIHsKICAgICAgIGVuZC5zZWNvbmRzICs9IDE7CiAgICAgICBlbmQubmFub3MgLT0gMTAwMDAwMDAwMDsKICAgICB9CgogRXhhbXBsZSAzOiBDb21wdXRlIER1cmF0aW9uIGZyb20gZGF0ZXRpbWUudGltZWRlbHRhIGluIFB5dGhvbi4KCiAgICAgdGQgPSBkYXRldGltZS50aW1lZGVsdGEoZGF5cz0zLCBtaW51dGVzPTEwKQogICAgIGR1cmF0aW9uID0gRHVyYXRpb24oKQogICAgIGR1cmF0aW9uLkZyb21UaW1lZGVsdGEodGQpCgogIyBKU09OIE1hcHBpbmcKCiBJbiBKU09OIGZvcm1hdCwgdGhlIER1cmF0aW9uIHR5cGUgaXMgZW5jb2RlZCBhcyBhIHN0cmluZyByYXRoZXIgdGhhbiBhbgogb2JqZWN0LCB3aGVyZSB0aGUgc3RyaW5nIGVuZHMgaW4gdGhlIHN1ZmZpeCAicyIgKGluZGljYXRpbmcgc2Vjb25kcykgYW5kCiBpcyBwcmVjZWRlZCBieSB0aGUgbnVtYmVyIG9mIHNlY29uZHMsIHdpdGggbmFub3NlY29uZHMgZXhwcmVzc2VkIGFzCiBmcmFjdGlvbmFsIHNlY29uZHMuIEZvciBleGFtcGxlLCAzIHNlY29uZHMgd2l0aCAwIG5hbm9zZWNvbmRzIHNob3VsZCBiZQogZW5jb2RlZCBpbiBKU09OIGZvcm1hdCBhcyAiM3MiLCB3aGlsZSAzIHNlY29uZHMgYW5kIDEgbmFub3NlY29uZCBzaG91bGQKIGJlIGV4cHJlc3NlZCBpbiBKU09OIGZvcm1hdCBhcyAiMy4wMDAwMDAwMDFzIiwgYW5kIDMgc2Vjb25kcyBhbmQgMQogbWljcm9zZWNvbmQgc2hvdWxkIGJlIGV4cHJlc3NlZCBpbiBKU09OIGZvcm1hdCBhcyAiMy4wMDAwMDFzIi4KCgoKCgMEAAESA2UIEArcAQoEBAACABIDaQIUGs4BIFNpZ25lZCBzZWNvbmRzIG9mIHRoZSBzcGFuIG9mIHRpbWUuIE11c3QgYmUgZnJvbSAtMzE1LDU3NiwwMDAsMDAwCiB0byArMzE1LDU3NiwwMDAsMDAwIGluY2x1c2l2ZS4gTm90ZTogdGhlc2UgYm91bmRzIGFyZSBjb21wdXRlZCBmcm9tOgogNjAgc2VjL21pbiAqIDYwIG1pbi9ociAqIDI0IGhyL2RheSAqIDM2NS4yNSBkYXlzL3llYXIgKiAxMDAwMCB5ZWFycwoKDAoFBAACAAUSA2kCBwoMCgUEAAIAARIDaQgPCgwKBQQAAgADEgNpEhMKgwMKBAQAAgESA3ECEhr1AiBTaWduZWQgZnJhY3Rpb25zIG9mIGEgc2Vjb25kIGF0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbiBvZiB0aGUgc3Bhbgogb2YgdGltZS4gRHVyYXRpb25zIGxlc3MgdGhhbiBvbmUgc2Vjb25kIGFyZSByZXByZXNlbnRlZCB3aXRoIGEgMAogYHNlY29uZHNgIGZpZWxkIGFuZCBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIGBuYW5vc2AgZmllbGQuIEZvciBkdXJhdGlvbnMKIG9mIG9uZSBzZWNvbmQgb3IgbW9yZSwgYSBub24temVybyB2YWx1ZSBmb3IgdGhlIGBuYW5vc2AgZmllbGQgbXVzdCBiZQogb2YgdGhlIHNhbWUgc2lnbiBhcyB0aGUgYHNlY29uZHNgIGZpZWxkLiBNdXN0IGJlIGZyb20gLTk5OSw5OTksOTk5CiB0byArOTk5LDk5OSw5OTkgaW5jbHVzaXZlLgoKDAoFBAACAQUSA3ECBwoMCgUEAAIBARIDcQgNCgwKBQQAAgEDEgNxEBFiBnByb3RvMwr/EQobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvEg9nb29nbGUucHJvdG9idWYiBwoFRW1wdHlCfQoTY29tLmdvb2dsZS5wcm90b2J1ZkIKRW1wdHlQcm90b1ABWi5nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9lbXB0eXBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSr4QCgYSBB4AMhAKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiAEUKCQoCCAsSAyIARQoICgEIEgMjACwKCQoCCAESAyMALAoICgEIEgMkACsKCQoCCAgSAyQAKwoICgEIEgMlACIKCQoCCAoSAyUAIgoICgEIEgMmACEKCQoCCCQSAyYAIQoICgEIEgMnADsKCQoCCCUSAycAOwoICgEIEgMoAB8KCQoCCB8SAygAHwq7AgoCBAASAzIAEBqvAiBBIGdlbmVyaWMgZW1wdHkgbWVzc2FnZSB0aGF0IHlvdSBjYW4gcmUtdXNlIHRvIGF2b2lkIGRlZmluaW5nIGR1cGxpY2F0ZWQKIGVtcHR5IG1lc3NhZ2VzIGluIHlvdXIgQVBJcy4gQSB0eXBpY2FsIGV4YW1wbGUgaXMgdG8gdXNlIGl0IGFzIHRoZSByZXF1ZXN0CiBvciB0aGUgcmVzcG9uc2UgdHlwZSBvZiBhbiBBUEkgbWV0aG9kLiBGb3IgaW5zdGFuY2U6CgogICAgIHNlcnZpY2UgRm9vIHsKICAgICAgIHJwYyBCYXIoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KSByZXR1cm5zIChnb29nbGUucHJvdG9idWYuRW1wdHkpOwogICAgIH0KCgoKCgMEAAESAzIIDWIGcHJvdG8zCoo9CiBnb29nbGUvcHJvdG9idWYvZmllbGRfbWFzay5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIiEKCUZpZWxkTWFzaxIUCgVwYXRocxgBIAMoCVIFcGF0aHNChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDkZpZWxkTWFza1Byb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2ZpZWxkbWFza3Bi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSqE7CgcSBR4A9AEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAsCgkKAggBEgMiACwKCAoBCBIDIwAvCgkKAggIEgMjAC8KCAoBCBIDJAAiCgkKAggKEgMkACIKCAoBCBIDJQAhCgkKAggkEgMlACEKCAoBCBIDJgA7CgkKAgglEgMmADsKCAoBCBIDJwBJCgkKAggLEgMnAEkKCAoBCBIDKAAfCgkKAggfEgMoAB8KsiwKAgQAEgbxAQD0AQEaoywgYEZpZWxkTWFza2AgcmVwcmVzZW50cyBhIHNldCBvZiBzeW1ib2xpYyBmaWVsZCBwYXRocywgZm9yIGV4YW1wbGU6CgogICAgIHBhdGhzOiAiZi5hIgogICAgIHBhdGhzOiAiZi5iLmQiCgogSGVyZSBgZmAgcmVwcmVzZW50cyBhIGZpZWxkIGluIHNvbWUgcm9vdCBtZXNzYWdlLCBgYWAgYW5kIGBiYAogZmllbGRzIGluIHRoZSBtZXNzYWdlIGZvdW5kIGluIGBmYCwgYW5kIGBkYCBhIGZpZWxkIGZvdW5kIGluIHRoZQogbWVzc2FnZSBpbiBgZi5iYC4KCiBGaWVsZCBtYXNrcyBhcmUgdXNlZCB0byBzcGVjaWZ5IGEgc3Vic2V0IG9mIGZpZWxkcyB0aGF0IHNob3VsZCBiZQogcmV0dXJuZWQgYnkgYSBnZXQgb3BlcmF0aW9uIG9yIG1vZGlmaWVkIGJ5IGFuIHVwZGF0ZSBvcGVyYXRpb24uCiBGaWVsZCBtYXNrcyBhbHNvIGhhdmUgYSBjdXN0b20gSlNPTiBlbmNvZGluZyAoc2VlIGJlbG93KS4KCiAjIEZpZWxkIE1hc2tzIGluIFByb2plY3Rpb25zCgogV2hlbiB1c2VkIGluIHRoZSBjb250ZXh0IG9mIGEgcHJvamVjdGlvbiwgYSByZXNwb25zZSBtZXNzYWdlIG9yCiBzdWItbWVzc2FnZSBpcyBmaWx0ZXJlZCBieSB0aGUgQVBJIHRvIG9ubHkgY29udGFpbiB0aG9zZSBmaWVsZHMgYXMKIHNwZWNpZmllZCBpbiB0aGUgbWFzay4gRm9yIGV4YW1wbGUsIGlmIHRoZSBtYXNrIGluIHRoZSBwcmV2aW91cwogZXhhbXBsZSBpcyBhcHBsaWVkIHRvIGEgcmVzcG9uc2UgbWVzc2FnZSBhcyBmb2xsb3dzOgoKICAgICBmIHsKICAgICAgIGEgOiAyMgogICAgICAgYiB7CiAgICAgICAgIGQgOiAxCiAgICAgICAgIHggOiAyCiAgICAgICB9CiAgICAgICB5IDogMTMKICAgICB9CiAgICAgejogOAoKIFRoZSByZXN1bHQgd2lsbCBub3QgY29udGFpbiBzcGVjaWZpYyB2YWx1ZXMgZm9yIGZpZWxkcyB4LHkgYW5kIHoKICh0aGVpciB2YWx1ZSB3aWxsIGJlIHNldCB0byB0aGUgZGVmYXVsdCwgYW5kIG9taXR0ZWQgaW4gcHJvdG8gdGV4dAogb3V0cHV0KToKCgogICAgIGYgewogICAgICAgYSA6IDIyCiAgICAgICBiIHsKICAgICAgICAgZCA6IDEKICAgICAgIH0KICAgICB9CgogQSByZXBlYXRlZCBmaWVsZCBpcyBub3QgYWxsb3dlZCBleGNlcHQgYXQgdGhlIGxhc3QgcG9zaXRpb24gb2YgYQogcGF0aHMgc3RyaW5nLgoKIElmIGEgRmllbGRNYXNrIG9iamVjdCBpcyBub3QgcHJlc2VudCBpbiBhIGdldCBvcGVyYXRpb24sIHRoZQogb3BlcmF0aW9uIGFwcGxpZXMgdG8gYWxsIGZpZWxkcyAoYXMgaWYgYSBGaWVsZE1hc2sgb2YgYWxsIGZpZWxkcwogaGFkIGJlZW4gc3BlY2lmaWVkKS4KCiBOb3RlIHRoYXQgYSBmaWVsZCBtYXNrIGRvZXMgbm90IG5lY2Vzc2FyaWx5IGFwcGx5IHRvIHRoZQogdG9wLWxldmVsIHJlc3BvbnNlIG1lc3NhZ2UuIEluIGNhc2Ugb2YgYSBSRVNUIGdldCBvcGVyYXRpb24sIHRoZQogZmllbGQgbWFzayBhcHBsaWVzIGRpcmVjdGx5IHRvIHRoZSByZXNwb25zZSwgYnV0IGluIGNhc2Ugb2YgYSBSRVNUCiBsaXN0IG9wZXJhdGlvbiwgdGhlIG1hc2sgaW5zdGVhZCBhcHBsaWVzIHRvIGVhY2ggaW5kaXZpZHVhbCBtZXNzYWdlCiBpbiB0aGUgcmV0dXJuZWQgcmVzb3VyY2UgbGlzdC4gSW4gY2FzZSBvZiBhIFJFU1QgY3VzdG9tIG1ldGhvZCwKIG90aGVyIGRlZmluaXRpb25zIG1heSBiZSB1c2VkLiBXaGVyZSB0aGUgbWFzayBhcHBsaWVzIHdpbGwgYmUKIGNsZWFybHkgZG9jdW1lbnRlZCB0b2dldGhlciB3aXRoIGl0cyBkZWNsYXJhdGlvbiBpbiB0aGUgQVBJLiAgSW4KIGFueSBjYXNlLCB0aGUgZWZmZWN0IG9uIHRoZSByZXR1cm5lZCByZXNvdXJjZS9yZXNvdXJjZXMgaXMgcmVxdWlyZWQKIGJlaGF2aW9yIGZvciBBUElzLgoKICMgRmllbGQgTWFza3MgaW4gVXBkYXRlIE9wZXJhdGlvbnMKCiBBIGZpZWxkIG1hc2sgaW4gdXBkYXRlIG9wZXJhdGlvbnMgc3BlY2lmaWVzIHdoaWNoIGZpZWxkcyBvZiB0aGUKIHRhcmdldGVkIHJlc291cmNlIGFyZSBnb2luZyB0byBiZSB1cGRhdGVkLiBUaGUgQVBJIGlzIHJlcXVpcmVkCiB0byBvbmx5IGNoYW5nZSB0aGUgdmFsdWVzIG9mIHRoZSBmaWVsZHMgYXMgc3BlY2lmaWVkIGluIHRoZSBtYXNrCiBhbmQgbGVhdmUgdGhlIG90aGVycyB1bnRvdWNoZWQuIElmIGEgcmVzb3VyY2UgaXMgcGFzc2VkIGluIHRvCiBkZXNjcmliZSB0aGUgdXBkYXRlZCB2YWx1ZXMsIHRoZSBBUEkgaWdub3JlcyB0aGUgdmFsdWVzIG9mIGFsbAogZmllbGRzIG5vdCBjb3ZlcmVkIGJ5IHRoZSBtYXNrLgoKIElmIGEgcmVwZWF0ZWQgZmllbGQgaXMgc3BlY2lmaWVkIGZvciBhbiB1cGRhdGUgb3BlcmF0aW9uLCBuZXcgdmFsdWVzIHdpbGwKIGJlIGFwcGVuZGVkIHRvIHRoZSBleGlzdGluZyByZXBlYXRlZCBmaWVsZCBpbiB0aGUgdGFyZ2V0IHJlc291cmNlLiBOb3RlIHRoYXQKIGEgcmVwZWF0ZWQgZmllbGQgaXMgb25seSBhbGxvd2VkIGluIHRoZSBsYXN0IHBvc2l0aW9uIG9mIGEgYHBhdGhzYCBzdHJpbmcuCgogSWYgYSBzdWItbWVzc2FnZSBpcyBzcGVjaWZpZWQgaW4gdGhlIGxhc3QgcG9zaXRpb24gb2YgdGhlIGZpZWxkIG1hc2sgZm9yIGFuCiB1cGRhdGUgb3BlcmF0aW9uLCB0aGVuIG5ldyB2YWx1ZSB3aWxsIGJlIG1lcmdlZCBpbnRvIHRoZSBleGlzdGluZyBzdWItbWVzc2FnZQogaW4gdGhlIHRhcmdldCByZXNvdXJjZS4KCiBGb3IgZXhhbXBsZSwgZ2l2ZW4gdGhlIHRhcmdldCBtZXNzYWdlOgoKICAgICBmIHsKICAgICAgIGIgewogICAgICAgICBkOiAxCiAgICAgICAgIHg6IDIKICAgICAgIH0KICAgICAgIGM6IFsxXQogICAgIH0KCiBBbmQgYW4gdXBkYXRlIG1lc3NhZ2U6CgogICAgIGYgewogICAgICAgYiB7CiAgICAgICAgIGQ6IDEwCiAgICAgICB9CiAgICAgICBjOiBbMl0KICAgICB9CgogdGhlbiBpZiB0aGUgZmllbGQgbWFzayBpczoKCiAgcGF0aHM6IFsiZi5iIiwgImYuYyJdCgogdGhlbiB0aGUgcmVzdWx0IHdpbGwgYmU6CgogICAgIGYgewogICAgICAgYiB7CiAgICAgICAgIGQ6IDEwCiAgICAgICAgIHg6IDIKICAgICAgIH0KICAgICAgIGM6IFsxLCAyXQogICAgIH0KCiBBbiBpbXBsZW1lbnRhdGlvbiBtYXkgcHJvdmlkZSBvcHRpb25zIHRvIG92ZXJyaWRlIHRoaXMgZGVmYXVsdCBiZWhhdmlvciBmb3IKIHJlcGVhdGVkIGFuZCBtZXNzYWdlIGZpZWxkcy4KCiBJbiBvcmRlciB0byByZXNldCBhIGZpZWxkJ3MgdmFsdWUgdG8gdGhlIGRlZmF1bHQsIHRoZSBmaWVsZCBtdXN0CiBiZSBpbiB0aGUgbWFzayBhbmQgc2V0IHRvIHRoZSBkZWZhdWx0IHZhbHVlIGluIHRoZSBwcm92aWRlZCByZXNvdXJjZS4KIEhlbmNlLCBpbiBvcmRlciB0byByZXNldCBhbGwgZmllbGRzIG9mIGEgcmVzb3VyY2UsIHByb3ZpZGUgYSBkZWZhdWx0CiBpbnN0YW5jZSBvZiB0aGUgcmVzb3VyY2UgYW5kIHNldCBhbGwgZmllbGRzIGluIHRoZSBtYXNrLCBvciBkbwogbm90IHByb3ZpZGUgYSBtYXNrIGFzIGRlc2NyaWJlZCBiZWxvdy4KCiBJZiBhIGZpZWxkIG1hc2sgaXMgbm90IHByZXNlbnQgb24gdXBkYXRlLCB0aGUgb3BlcmF0aW9uIGFwcGxpZXMgdG8KIGFsbCBmaWVsZHMgKGFzIGlmIGEgZmllbGQgbWFzayBvZiBhbGwgZmllbGRzIGhhcyBiZWVuIHNwZWNpZmllZCkuCiBOb3RlIHRoYXQgaW4gdGhlIHByZXNlbmNlIG9mIHNjaGVtYSBldm9sdXRpb24sIHRoaXMgbWF5IG1lYW4gdGhhdAogZmllbGRzIHRoZSBjbGllbnQgZG9lcyBub3Qga25vdyBhbmQgaGFzIHRoZXJlZm9yZSBub3QgZmlsbGVkIGludG8KIHRoZSByZXF1ZXN0IHdpbGwgYmUgcmVzZXQgdG8gdGhlaXIgZGVmYXVsdC4gSWYgdGhpcyBpcyB1bndhbnRlZAogYmVoYXZpb3IsIGEgc3BlY2lmaWMgc2VydmljZSBtYXkgcmVxdWlyZSBhIGNsaWVudCB0byBhbHdheXMgc3BlY2lmeQogYSBmaWVsZCBtYXNrLCBwcm9kdWNpbmcgYW4gZXJyb3IgaWYgbm90LgoKIEFzIHdpdGggZ2V0IG9wZXJhdGlvbnMsIHRoZSBsb2NhdGlvbiBvZiB0aGUgcmVzb3VyY2Ugd2hpY2gKIGRlc2NyaWJlcyB0aGUgdXBkYXRlZCB2YWx1ZXMgaW4gdGhlIHJlcXVlc3QgbWVzc2FnZSBkZXBlbmRzIG9uIHRoZQogb3BlcmF0aW9uIGtpbmQuIEluIGFueSBjYXNlLCB0aGUgZWZmZWN0IG9mIHRoZSBmaWVsZCBtYXNrIGlzCiByZXF1aXJlZCB0byBiZSBob25vcmVkIGJ5IHRoZSBBUEkuCgogIyMgQ29uc2lkZXJhdGlvbnMgZm9yIEhUVFAgUkVTVAoKIFRoZSBIVFRQIGtpbmQgb2YgYW4gdXBkYXRlIG9wZXJhdGlvbiB3aGljaCB1c2VzIGEgZmllbGQgbWFzayBtdXN0CiBiZSBzZXQgdG8gUEFUQ0ggaW5zdGVhZCBvZiBQVVQgaW4gb3JkZXIgdG8gc2F0aXNmeSBIVFRQIHNlbWFudGljcwogKFBVVCBtdXN0IG9ubHkgYmUgdXNlZCBmb3IgZnVsbCB1cGRhdGVzKS4KCiAjIEpTT04gRW5jb2Rpbmcgb2YgRmllbGQgTWFza3MKCiBJbiBKU09OLCBhIGZpZWxkIG1hc2sgaXMgZW5jb2RlZCBhcyBhIHNpbmdsZSBzdHJpbmcgd2hlcmUgcGF0aHMgYXJlCiBzZXBhcmF0ZWQgYnkgYSBjb21tYS4gRmllbGRzIG5hbWUgaW4gZWFjaCBwYXRoIGFyZSBjb252ZXJ0ZWQKIHRvL2Zyb20gbG93ZXItY2FtZWwgbmFtaW5nIGNvbnZlbnRpb25zLgoKIEFzIGFuIGV4YW1wbGUsIGNvbnNpZGVyIHRoZSBmb2xsb3dpbmcgbWVzc2FnZSBkZWNsYXJhdGlvbnM6CgogICAgIG1lc3NhZ2UgUHJvZmlsZSB7CiAgICAgICBVc2VyIHVzZXIgPSAxOwogICAgICAgUGhvdG8gcGhvdG8gPSAyOwogICAgIH0KICAgICBtZXNzYWdlIFVzZXIgewogICAgICAgc3RyaW5nIGRpc3BsYXlfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgYWRkcmVzcyA9IDI7CiAgICAgfQoKIEluIHByb3RvIGEgZmllbGQgbWFzayBmb3IgYFByb2ZpbGVgIG1heSBsb29rIGFzIHN1Y2g6CgogICAgIG1hc2sgewogICAgICAgcGF0aHM6ICJ1c2VyLmRpc3BsYXlfbmFtZSIKICAgICAgIHBhdGhzOiAicGhvdG8iCiAgICAgfQoKIEluIEpTT04sIHRoZSBzYW1lIG1hc2sgaXMgcmVwcmVzZW50ZWQgYXMgYmVsb3c6CgogICAgIHsKICAgICAgIG1hc2s6ICJ1c2VyLmRpc3BsYXlOYW1lLHBob3RvIgogICAgIH0KCiAjIEZpZWxkIE1hc2tzIGFuZCBPbmVvZiBGaWVsZHMKCiBGaWVsZCBtYXNrcyB0cmVhdCBmaWVsZHMgaW4gb25lb2ZzIGp1c3QgYXMgcmVndWxhciBmaWVsZHMuIENvbnNpZGVyIHRoZQogZm9sbG93aW5nIG1lc3NhZ2U6CgogICAgIG1lc3NhZ2UgU2FtcGxlTWVzc2FnZSB7CiAgICAgICBvbmVvZiB0ZXN0X29uZW9mIHsKICAgICAgICAgc3RyaW5nIG5hbWUgPSA0OwogICAgICAgICBTdWJNZXNzYWdlIHN1Yl9tZXNzYWdlID0gOTsKICAgICAgIH0KICAgICB9CgogVGhlIGZpZWxkIG1hc2sgY2FuIGJlOgoKICAgICBtYXNrIHsKICAgICAgIHBhdGhzOiAibmFtZSIKICAgICB9CgogT3I6CgogICAgIG1hc2sgewogICAgICAgcGF0aHM6ICJzdWJfbWVzc2FnZSIKICAgICB9CgogTm90ZSB0aGF0IG9uZW9mIHR5cGUgbmFtZXMgKCJ0ZXN0X29uZW9mIiBpbiB0aGlzIGNhc2UpIGNhbm5vdCBiZSB1c2VkIGluCiBwYXRocy4KCiAjIyBGaWVsZCBNYXNrIFZlcmlmaWNhdGlvbgoKIFRoZSBpbXBsZW1lbnRhdGlvbiBvZiBhbnkgQVBJIG1ldGhvZCB3aGljaCBoYXMgYSBGaWVsZE1hc2sgdHlwZSBmaWVsZCBpbiB0aGUKIHJlcXVlc3Qgc2hvdWxkIHZlcmlmeSB0aGUgaW5jbHVkZWQgZmllbGQgcGF0aHMsIGFuZCByZXR1cm4gYW4KIGBJTlZBTElEX0FSR1VNRU5UYCBlcnJvciBpZiBhbnkgcGF0aCBpcyB1bm1hcHBhYmxlLgoKCwoDBAABEgTxAQgRCiwKBAQAAgASBPMBAhwaHiBUaGUgc2V0IG9mIGZpZWxkIG1hc2sgcGF0aHMuCgoNCgUEAAIABBIE8wECCgoNCgUEAAIABRIE8wELEQoNCgUEAAIAARIE8wESFwoNCgUEAAIAAxIE8wEaG2IGcHJvdG8zCsQxCh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiOwoJVGltZXN0YW1wEhgKB3NlY29uZHMYASABKANSB3NlY29uZHMSFAoFbmFub3MYAiABKAVSBW5hbm9zQoUBChNjb20uZ29vZ2xlLnByb3RvYnVmQg5UaW1lc3RhbXBQcm90b1ABWjJnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi90aW1lc3RhbXBwYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rCLwoHEgUeAI8BAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAHwoJCgIIHxIDIgAfCggKAQgSAyMASQoJCgIICxIDIwBJCggKAQgSAyQALAoJCgIIARIDJAAsCggKAQgSAyUALwoJCgIICBIDJQAvCggKAQgSAyYAIgoJCgIIChIDJgAiCggKAQgSAycAIQoJCgIIJBIDJwAhCggKAQgSAygAOwoJCgIIJRIDKAA7CtsdCgIEABIGhAEAjwEBGswdIEEgVGltZXN0YW1wIHJlcHJlc2VudHMgYSBwb2ludCBpbiB0aW1lIGluZGVwZW5kZW50IG9mIGFueSB0aW1lIHpvbmUgb3IgbG9jYWwKIGNhbGVuZGFyLCBlbmNvZGVkIGFzIGEgY291bnQgb2Ygc2Vjb25kcyBhbmQgZnJhY3Rpb25zIG9mIHNlY29uZHMgYXQKIG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gVGhlIGNvdW50IGlzIHJlbGF0aXZlIHRvIGFuIGVwb2NoIGF0IFVUQyBtaWRuaWdodCBvbgogSmFudWFyeSAxLCAxOTcwLCBpbiB0aGUgcHJvbGVwdGljIEdyZWdvcmlhbiBjYWxlbmRhciB3aGljaCBleHRlbmRzIHRoZQogR3JlZ29yaWFuIGNhbGVuZGFyIGJhY2t3YXJkcyB0byB5ZWFyIG9uZS4KCiBBbGwgbWludXRlcyBhcmUgNjAgc2Vjb25kcyBsb25nLiBMZWFwIHNlY29uZHMgYXJlICJzbWVhcmVkIiBzbyB0aGF0IG5vIGxlYXAKIHNlY29uZCB0YWJsZSBpcyBuZWVkZWQgZm9yIGludGVycHJldGF0aW9uLCB1c2luZyBhIFsyNC1ob3VyIGxpbmVhcgogc21lYXJdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3RpbWUvc21lYXIpLgoKIFRoZSByYW5nZSBpcyBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvIDk5OTktMTItMzFUMjM6NTk6NTkuOTk5OTk5OTk5Wi4gQnkKIHJlc3RyaWN0aW5nIHRvIHRoYXQgcmFuZ2UsIHdlIGVuc3VyZSB0aGF0IHdlIGNhbiBjb252ZXJ0IHRvIGFuZCBmcm9tIFtSRkMKIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZGF0ZSBzdHJpbmdzLgoKICMgRXhhbXBsZXMKCiBFeGFtcGxlIDE6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gUE9TSVggYHRpbWUoKWAuCgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKHRpbWUoTlVMTCkpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3MoMCk7CgogRXhhbXBsZSAyOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFBPU0lYIGBnZXR0aW1lb2ZkYXkoKWAuCgogICAgIHN0cnVjdCB0aW1ldmFsIHR2OwogICAgIGdldHRpbWVvZmRheSgmdHYsIE5VTEwpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcyh0di50dl9zZWMpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3ModHYudHZfdXNlYyAqIDEwMDApOwoKIEV4YW1wbGUgMzogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBXaW4zMiBgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoKWAuCgogICAgIEZJTEVUSU1FIGZ0OwogICAgIEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKCZmdCk7CiAgICAgVUlOVDY0IHRpY2tzID0gKCgoVUlOVDY0KWZ0LmR3SGlnaERhdGVUaW1lKSA8PCAzMikgfCBmdC5kd0xvd0RhdGVUaW1lOwoKICAgICAvLyBBIFdpbmRvd3MgdGljayBpcyAxMDAgbmFub3NlY29uZHMuIFdpbmRvd3MgZXBvY2ggMTYwMS0wMS0wMVQwMDowMDowMFoKICAgICAvLyBpcyAxMTY0NDQ3MzYwMCBzZWNvbmRzIGJlZm9yZSBVbml4IGVwb2NoIDE5NzAtMDEtMDFUMDA6MDA6MDBaLgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKChJTlQ2NCkgKCh0aWNrcyAvIDEwMDAwMDAwKSAtIDExNjQ0NDczNjAwTEwpKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKChJTlQzMikgKCh0aWNrcyAlIDEwMDAwMDAwKSAqIDEwMCkpOwoKIEV4YW1wbGUgNDogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBKYXZhIGBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKWAuCgogICAgIGxvbmcgbWlsbGlzID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXAgPSBUaW1lc3RhbXAubmV3QnVpbGRlcigpLnNldFNlY29uZHMobWlsbGlzIC8gMTAwMCkKICAgICAgICAgLnNldE5hbm9zKChpbnQpICgobWlsbGlzICUgMTAwMCkgKiAxMDAwMDAwKSkuYnVpbGQoKTsKCiBFeGFtcGxlIDU6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gSmF2YSBgSW5zdGFudC5ub3coKWAuCgogICAgIEluc3RhbnQgbm93ID0gSW5zdGFudC5ub3coKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcCA9CiAgICAgICAgIFRpbWVzdGFtcC5uZXdCdWlsZGVyKCkuc2V0U2Vjb25kcyhub3cuZ2V0RXBvY2hTZWNvbmQoKSkKICAgICAgICAgICAgIC5zZXROYW5vcyhub3cuZ2V0TmFubygpKS5idWlsZCgpOwoKIEV4YW1wbGUgNjogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBjdXJyZW50IHRpbWUgaW4gUHl0aG9uLgoKICAgICB0aW1lc3RhbXAgPSBUaW1lc3RhbXAoKQogICAgIHRpbWVzdGFtcC5HZXRDdXJyZW50VGltZSgpCgogIyBKU09OIE1hcHBpbmcKCiBJbiBKU09OIGZvcm1hdCwgdGhlIFRpbWVzdGFtcCB0eXBlIGlzIGVuY29kZWQgYXMgYSBzdHJpbmcgaW4gdGhlCiBbUkZDIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZm9ybWF0LiBUaGF0IGlzLCB0aGUKIGZvcm1hdCBpcyAie3llYXJ9LXttb250aH0te2RheX1Ue2hvdXJ9OnttaW59OntzZWN9Wy57ZnJhY19zZWN9XVoiCiB3aGVyZSB7eWVhcn0gaXMgYWx3YXlzIGV4cHJlc3NlZCB1c2luZyBmb3VyIGRpZ2l0cyB3aGlsZSB7bW9udGh9LCB7ZGF5fSwKIHtob3VyfSwge21pbn0sIGFuZCB7c2VjfSBhcmUgemVyby1wYWRkZWQgdG8gdHdvIGRpZ2l0cyBlYWNoLiBUaGUgZnJhY3Rpb25hbAogc2Vjb25kcywgd2hpY2ggY2FuIGdvIHVwIHRvIDkgZGlnaXRzIChpLmUuIHVwIHRvIDEgbmFub3NlY29uZCByZXNvbHV0aW9uKSwKIGFyZSBvcHRpb25hbC4gVGhlICJaIiBzdWZmaXggaW5kaWNhdGVzIHRoZSB0aW1lem9uZSAoIlVUQyIpOyB0aGUgdGltZXpvbmUKIGlzIHJlcXVpcmVkLiBBIHByb3RvMyBKU09OIHNlcmlhbGl6ZXIgc2hvdWxkIGFsd2F5cyB1c2UgVVRDIChhcyBpbmRpY2F0ZWQgYnkKICJaIikgd2hlbiBwcmludGluZyB0aGUgVGltZXN0YW1wIHR5cGUgYW5kIGEgcHJvdG8zIEpTT04gcGFyc2VyIHNob3VsZCBiZQogYWJsZSB0byBhY2NlcHQgYm90aCBVVEMgYW5kIG90aGVyIHRpbWV6b25lcyAoYXMgaW5kaWNhdGVkIGJ5IGFuIG9mZnNldCkuCgogRm9yIGV4YW1wbGUsICIyMDE3LTAxLTE1VDAxOjMwOjE1LjAxWiIgZW5jb2RlcyAxNS4wMSBzZWNvbmRzIHBhc3QKIDAxOjMwIFVUQyBvbiBKYW51YXJ5IDE1LCAyMDE3LgoKIEluIEphdmFTY3JpcHQsIG9uZSBjYW4gY29udmVydCBhIERhdGUgb2JqZWN0IHRvIHRoaXMgZm9ybWF0IHVzaW5nIHRoZQogc3RhbmRhcmQKIFt0b0lTT1N0cmluZygpXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9EYXRlL3RvSVNPU3RyaW5nKQogbWV0aG9kLiBJbiBQeXRob24sIGEgc3RhbmRhcmQgYGRhdGV0aW1lLmRhdGV0aW1lYCBvYmplY3QgY2FuIGJlIGNvbnZlcnRlZAogdG8gdGhpcyBmb3JtYXQgdXNpbmcKIFtgc3RyZnRpbWVgXShodHRwczovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJhcnkvdGltZS5odG1sI3RpbWUuc3RyZnRpbWUpIHdpdGgKIHRoZSB0aW1lIGZvcm1hdCBzcGVjICclWS0lbS0lZFQlSDolTTolUy4lZlonLiBMaWtld2lzZSwgaW4gSmF2YSwgb25lIGNhbiB1c2UKIHRoZSBKb2RhIFRpbWUncyBbYElTT0RhdGVUaW1lRm9ybWF0LmRhdGVUaW1lKClgXSgKIGh0dHA6Ly93d3cuam9kYS5vcmcvam9kYS10aW1lL2FwaWRvY3Mvb3JnL2pvZGEvdGltZS9mb3JtYXQvSVNPRGF0ZVRpbWVGb3JtYXQuaHRtbCNkYXRlVGltZSUyRCUyRAogKSB0byBvYnRhaW4gYSBmb3JtYXR0ZXIgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHRpbWVzdGFtcHMgaW4gdGhpcyBmb3JtYXQuCgoKCwoDBAABEgSEAQgRCp0BCgQEAAIAEgSIAQIUGo4BIFJlcHJlc2VudHMgc2Vjb25kcyBvZiBVVEMgdGltZSBzaW5jZSBVbml4IGVwb2NoCiAxOTcwLTAxLTAxVDAwOjAwOjAwWi4gTXVzdCBiZSBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvCiA5OTk5LTEyLTMxVDIzOjU5OjU5WiBpbmNsdXNpdmUuCgoNCgUEAAIABRIEiAECBwoNCgUEAAIAARIEiAEIDwoNCgUEAAIAAxIEiAESEwrlAQoEBAACARIEjgECEhrWASBOb24tbmVnYXRpdmUgZnJhY3Rpb25zIG9mIGEgc2Vjb25kIGF0IG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gTmVnYXRpdmUKIHNlY29uZCB2YWx1ZXMgd2l0aCBmcmFjdGlvbnMgbXVzdCBzdGlsbCBoYXZlIG5vbi1uZWdhdGl2ZSBuYW5vcyB2YWx1ZXMKIHRoYXQgY291bnQgZm9yd2FyZCBpbiB0aW1lLiBNdXN0IGJlIGZyb20gMCB0byA5OTksOTk5LDk5OQogaW5jbHVzaXZlLgoKDQoFBAACAQUSBI4BAgcKDQoFBAACAQESBI4BCA0KDQoFBAACAQMSBI4BEBFiBnByb3RvMwrNIwoeZ29vZ2xlL3Byb3RvYnVmL3dyYXBwZXJzLnByb3RvEg9nb29nbGUucHJvdG9idWYiIwoLRG91YmxlVmFsdWUSFAoFdmFsdWUYASABKAFSBXZhbHVlIiIKCkZsb2F0VmFsdWUSFAoFdmFsdWUYASABKAJSBXZhbHVlIiIKCkludDY0VmFsdWUSFAoFdmFsdWUYASABKANSBXZhbHVlIiMKC1VJbnQ2NFZhbHVlEhQKBXZhbHVlGAEgASgEUgV2YWx1ZSIiCgpJbnQzMlZhbHVlEhQKBXZhbHVlGAEgASgFUgV2YWx1ZSIjCgtVSW50MzJWYWx1ZRIUCgV2YWx1ZRgBIAEoDVIFdmFsdWUiIQoJQm9vbFZhbHVlEhQKBXZhbHVlGAEgASgIUgV2YWx1ZSIjCgtTdHJpbmdWYWx1ZRIUCgV2YWx1ZRgBIAEoCVIFdmFsdWUiIgoKQnl0ZXNWYWx1ZRIUCgV2YWx1ZRgBIAEoDFIFdmFsdWVCgwEKE2NvbS5nb29nbGUucHJvdG9idWZCDVdyYXBwZXJzUHJvdG9QAVoxZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vd3JhcHBlcnNwYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rEHwoGEgQoAHoBCtkQCgEMEgMoABIyzhAgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgogV3JhcHBlcnMgZm9yIHByaW1pdGl2ZSAobm9uLW1lc3NhZ2UpIHR5cGVzLiBUaGVzZSB0eXBlcyBhcmUgdXNlZnVsCiBmb3IgZW1iZWRkaW5nIHByaW1pdGl2ZXMgaW4gdGhlIGBnb29nbGUucHJvdG9idWYuQW55YCB0eXBlIGFuZCBmb3IgcGxhY2VzCiB3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CgMEBgESA2cIEQoeCgQEBgIAEgNpAhEaESBUaGUgYm9vbCB2YWx1ZS4KCgwKBQQGAgAFEgNpAgYKDAoFBAYCAAESA2kHDAoMCgUEBgIAAxIDaQ8QCmcKAgQHEgRvAHIBGlsgV3JhcHBlciBtZXNzYWdlIGZvciBgc3RyaW5nYC4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYFN0cmluZ1ZhbHVlYCBpcyBKU09OIHN0cmluZy4KCgoKAwQHARIDbwgTCiAKBAQHAgASA3ECExoTIFRoZSBzdHJpbmcgdmFsdWUuCgoMCgUEBwIABRIDcQIICgwKBQQHAgABEgNxCQ4KDAoFBAcCAAMSA3EREgplCgIECBIEdwB6ARpZIFdyYXBwZXIgbWVzc2FnZSBmb3IgYGJ5dGVzYC4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEJ5dGVzVmFsdWVgIGlzIEpTT04gc3RyaW5nLgoKCgoDBAgBEgN3CBIKHwoEBAgCABIDeQISGhIgVGhlIGJ5dGVzIHZhbHVlLgoKDAoFBAgCAAUSA3kCBwoMCgUECAIAARIDeQgNCgwKBQQIAgADEgN5EBFiBnByb3RvMwrqbQovZ29vZ2xlL3Byb3RvYnVmL3VuaXR0ZXN0X3dlbGxfa25vd25fdHlwZXMucHJvdG8SEXByb3RvYnVmX3VuaXR0ZXN0Ghlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGhlnb29nbGUvcHJvdG9idWYvYXBpLnByb3RvGh5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxogZ29vZ2xlL3Byb3RvYnVmL2ZpZWxkX21hc2sucHJvdG8aJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90bxocZ29vZ2xlL3Byb3RvYnVmL3N0cnVjdC5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8aHmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5wcm90byK0CQoSVGVzdFdlbGxLbm93blR5cGVzEjEKCWFueV9maWVsZBgBIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSCGFueUZpZWxkEjEKCWFwaV9maWVsZBgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlSCGFwaUZpZWxkEkAKDmR1cmF0aW9uX2ZpZWxkGAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUg1kdXJhdGlvbkZpZWxkEjcKC2VtcHR5X2ZpZWxkGAQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgplbXB0eUZpZWxkEkQKEGZpZWxkX21hc2tfZmllbGQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUg5maWVsZE1hc2tGaWVsZBJQChRzb3VyY2VfY29udGV4dF9maWVsZBgGIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0UhJzb3VyY2VDb250ZXh0RmllbGQSOgoMc3RydWN0X2ZpZWxkGAcgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFILc3RydWN0RmllbGQSQwoPdGltZXN0YW1wX2ZpZWxkGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIOdGltZXN0YW1wRmllbGQSNAoKdHlwZV9maWVsZBgJIAEoCzIVLmdvb2dsZS5wcm90b2J1Zi5UeXBlUgl0eXBlRmllbGQSPwoMZG91YmxlX2ZpZWxkGAogASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUgtkb3VibGVGaWVsZBI8CgtmbG9hdF9maWVsZBgLIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlUgpmbG9hdEZpZWxkEjwKC2ludDY0X2ZpZWxkGAwgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSCmludDY0RmllbGQSPwoMdWludDY0X2ZpZWxkGA0gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUgt1aW50NjRGaWVsZBI8CgtpbnQzMl9maWVsZBgOIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlUgppbnQzMkZpZWxkEj8KDHVpbnQzMl9maWVsZBgPIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVILdWludDMyRmllbGQSOQoKYm9vbF9maWVsZBgQIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSCWJvb2xGaWVsZBI/CgxzdHJpbmdfZmllbGQYESABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVSC3N0cmluZ0ZpZWxkEjwKC2J5dGVzX2ZpZWxkGBIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSCmJ5dGVzRmllbGQSNwoLdmFsdWVfZmllbGQYEyABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSCnZhbHVlRmllbGQi/wgKFlJlcGVhdGVkV2VsbEtub3duVHlwZXMSMQoJYW55X2ZpZWxkGAEgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIIYW55RmllbGQSMQoJYXBpX2ZpZWxkGAIgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFwaVIIYXBpRmllbGQSQAoOZHVyYXRpb25fZmllbGQYAyADKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SDWR1cmF0aW9uRmllbGQSNwoLZW1wdHlfZmllbGQYBCADKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSCmVtcHR5RmllbGQSRAoQZmllbGRfbWFza19maWVsZBgFIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSDmZpZWxkTWFza0ZpZWxkElAKFHNvdXJjZV9jb250ZXh0X2ZpZWxkGAYgAygLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSEnNvdXJjZUNvbnRleHRGaWVsZBI6CgxzdHJ1Y3RfZmllbGQYByADKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0UgtzdHJ1Y3RGaWVsZBJDCg90aW1lc3RhbXBfZmllbGQYCCADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUg50aW1lc3RhbXBGaWVsZBI0Cgp0eXBlX2ZpZWxkGAkgAygLMhUuZ29vZ2xlLnByb3RvYnVmLlR5cGVSCXR5cGVGaWVsZBI/Cgxkb3VibGVfZmllbGQYCiADKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVSC2RvdWJsZUZpZWxkEjwKC2Zsb2F0X2ZpZWxkGAsgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSCmZsb2F0RmllbGQSPAoLaW50NjRfZmllbGQYDCADKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZVIKaW50NjRGaWVsZBI/Cgx1aW50NjRfZmllbGQYDSADKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVSC3VpbnQ2NEZpZWxkEjwKC2ludDMyX2ZpZWxkGA4gAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSCmludDMyRmllbGQSPwoMdWludDMyX2ZpZWxkGA8gAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlUgt1aW50MzJGaWVsZBI5Cgpib29sX2ZpZWxkGBAgAygLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZVIJYm9vbEZpZWxkEj8KDHN0cmluZ19maWVsZBgRIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVILc3RyaW5nRmllbGQSPAoLYnl0ZXNfZmllbGQYEiADKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZVIKYnl0ZXNGaWVsZCKvCQoTT25lb2ZXZWxsS25vd25UeXBlcxIzCglhbnlfZmllbGQYASABKAsyFC5nb29nbGUucHJvdG9idWYuQW55SABSCGFueUZpZWxkEjMKCWFwaV9maWVsZBgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlIAFIIYXBpRmllbGQSQgoOZHVyYXRpb25fZmllbGQYAyABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25IAFINZHVyYXRpb25GaWVsZBI5CgtlbXB0eV9maWVsZBgEIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eUgAUgplbXB0eUZpZWxkEkYKEGZpZWxkX21hc2tfZmllbGQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrSABSDmZpZWxkTWFza0ZpZWxkElIKFHNvdXJjZV9jb250ZXh0X2ZpZWxkGAYgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRIAFISc291cmNlQ29udGV4dEZpZWxkEjwKDHN0cnVjdF9maWVsZBgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RIAFILc3RydWN0RmllbGQSRQoPdGltZXN0YW1wX2ZpZWxkGAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEgAUg50aW1lc3RhbXBGaWVsZBI2Cgp0eXBlX2ZpZWxkGAkgASgLMhUuZ29vZ2xlLnByb3RvYnVmLlR5cGVIAFIJdHlwZUZpZWxkEkEKDGRvdWJsZV9maWVsZBgKIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZUgAUgtkb3VibGVGaWVsZBI+CgtmbG9hdF9maWVsZBgLIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlSABSCmZsb2F0RmllbGQSPgoLaW50NjRfZmllbGQYDCABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZUgAUgppbnQ2NEZpZWxkEkEKDHVpbnQ2NF9maWVsZBgNIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZUgAUgt1aW50NjRGaWVsZBI+CgtpbnQzMl9maWVsZBgOIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlSABSCmludDMyRmllbGQSQQoMdWludDMyX2ZpZWxkGA8gASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlSABSC3VpbnQzMkZpZWxkEjsKCmJvb2xfZmllbGQYECABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlSABSCWJvb2xGaWVsZBJBCgxzdHJpbmdfZmllbGQYESABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVIAFILc3RyaW5nRmllbGQSPgoLYnl0ZXNfZmllbGQYEiABKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZUgAUgpieXRlc0ZpZWxkQg0KC29uZW9mX2ZpZWxkItgZChFNYXBXZWxsS25vd25UeXBlcxJPCglhbnlfZmllbGQYASADKAsyMi5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5BbnlGaWVsZEVudHJ5UghhbnlGaWVsZBJPCglhcGlfZmllbGQYAiADKAsyMi5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5BcGlGaWVsZEVudHJ5UghhcGlGaWVsZBJeCg5kdXJhdGlvbl9maWVsZBgDIAMoCzI3LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkR1cmF0aW9uRmllbGRFbnRyeVINZHVyYXRpb25GaWVsZBJVCgtlbXB0eV9maWVsZBgEIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkVtcHR5RmllbGRFbnRyeVIKZW1wdHlGaWVsZBJiChBmaWVsZF9tYXNrX2ZpZWxkGAUgAygLMjgucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuRmllbGRNYXNrRmllbGRFbnRyeVIOZmllbGRNYXNrRmllbGQSbgoUc291cmNlX2NvbnRleHRfZmllbGQYBiADKAsyPC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5Tb3VyY2VDb250ZXh0RmllbGRFbnRyeVISc291cmNlQ29udGV4dEZpZWxkElgKDHN0cnVjdF9maWVsZBgHIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlN0cnVjdEZpZWxkRW50cnlSC3N0cnVjdEZpZWxkEmEKD3RpbWVzdGFtcF9maWVsZBgIIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlRpbWVzdGFtcEZpZWxkRW50cnlSDnRpbWVzdGFtcEZpZWxkElIKCnR5cGVfZmllbGQYCSADKAsyMy5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5UeXBlRmllbGRFbnRyeVIJdHlwZUZpZWxkElgKDGRvdWJsZV9maWVsZBgKIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkRvdWJsZUZpZWxkRW50cnlSC2RvdWJsZUZpZWxkElUKC2Zsb2F0X2ZpZWxkGAsgAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuRmxvYXRGaWVsZEVudHJ5UgpmbG9hdEZpZWxkElUKC2ludDY0X2ZpZWxkGAwgAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuSW50NjRGaWVsZEVudHJ5UgppbnQ2NEZpZWxkElgKDHVpbnQ2NF9maWVsZBgNIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlVpbnQ2NEZpZWxkRW50cnlSC3VpbnQ2NEZpZWxkElUKC2ludDMyX2ZpZWxkGA4gAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuSW50MzJGaWVsZEVudHJ5UgppbnQzMkZpZWxkElgKDHVpbnQzMl9maWVsZBgPIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlVpbnQzMkZpZWxkRW50cnlSC3VpbnQzMkZpZWxkElIKCmJvb2xfZmllbGQYECADKAsyMy5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5Cb29sRmllbGRFbnRyeVIJYm9vbEZpZWxkElgKDHN0cmluZ19maWVsZBgRIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLlN0cmluZ0ZpZWxkRW50cnlSC3N0cmluZ0ZpZWxkElUKC2J5dGVzX2ZpZWxkGBIgAygLMjQucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQnl0ZXNGaWVsZEVudHJ5UgpieXRlc0ZpZWxkGlEKDUFueUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSKgoFdmFsdWUYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgV2YWx1ZToCOAEaUQoNQXBpRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIqCgV2YWx1ZRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlSBXZhbHVlOgI4ARpbChJEdXJhdGlvbkZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSLwoFdmFsdWUYAiABKAsyGS5nb29nbGUucHJvdG9idWYuRHVyYXRpb25SBXZhbHVlOgI4ARpVCg9FbXB0eUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSLAoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlSBXZhbHVlOgI4ARpdChNGaWVsZE1hc2tGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjAKBXZhbHVlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IFdmFsdWU6AjgBGmUKF1NvdXJjZUNvbnRleHRGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjQKBXZhbHVlGAIgASgLMh4uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvbnRleHRSBXZhbHVlOgI4ARpXChBTdHJ1Y3RGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5Ei0KBXZhbHVlGAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFIFdmFsdWU6AjgBGl0KE1RpbWVzdGFtcEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMAoFdmFsdWUYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgV2YWx1ZToCOAEaUwoOVHlwZUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSKwoFdmFsdWUYAiABKAsyFS5nb29nbGUucHJvdG9idWYuVHlwZVIFdmFsdWU6AjgBGlwKEERvdWJsZUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMgoFdmFsdWUYAiABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVSBXZhbHVlOgI4ARpaCg9GbG9hdEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIFdmFsdWU6AjgBGloKD0ludDY0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIxCgV2YWx1ZRgCIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlUgV2YWx1ZToCOAEaXAoQVWludDY0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIyCgV2YWx1ZRgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVIFdmFsdWU6AjgBGloKD0ludDMyRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIxCgV2YWx1ZRgCIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlUgV2YWx1ZToCOAEaXAoQVWludDMyRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIyCgV2YWx1ZRgCIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVIFdmFsdWU6AjgBGlgKDkJvb2xGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjAKBXZhbHVlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZVIFdmFsdWU6AjgBGlwKEFN0cmluZ0ZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMgoFdmFsdWUYAiABKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVSBXZhbHVlOgI4ARpaCg9CeXRlc0ZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZVIFdmFsdWU6AjgBQjkKGGNvbS5nb29nbGUucHJvdG9idWYudGVzdFABqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK5DQKBxIFHgCPAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP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AwIPAxIEjAE0NgoMCgQEAwIQEgSNAQI7Cg0KBQQDAhAGEgSNAQIoCg0KBQQDAhABEgSNASk1Cg0KBQQDAhADEgSNATg6CgwKBAQDAhESBI4BAjkKDQoFBAMCEQYSBI4BAicKDQoFBAMCEQESBI4BKDMKDQoFBAMCEQMSBI4BNjhiBnByb3RvMwqk0QEKKmdvb2dsZS9wcm90b2J1Zi90ZXN0X21lc3NhZ2VzX3Byb3RvMy5wcm90bxIdcHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMaGWdvb2dsZS9wcm90b2J1Zi9hbnkucHJvdG8aHmdvb2dsZS9wcm90b2J1Zi9kdXJhdGlvbi5wcm90bxogZ29vZ2xlL3Byb3RvYnVmL2ZpZWxkX21hc2sucHJvdG8aHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8aH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8aHmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5wcm90byKZWwoSVGVzdEFsbFR5cGVzUHJvdG8zEiUKDm9wdGlvbmFsX2ludDMyGAEgASgFUg1vcHRpb25hbEludDMyEiUKDm9wdGlvbmFsX2ludDY0GAIgASgDUg1vcHRpb25hbEludDY0EicKD29wdGlvbmFsX3VpbnQzMhgDIAEoDVIOb3B0aW9uYWxVaW50MzISJwoPb3B0aW9uYWxfdWludDY0GAQgASgEUg5vcHRpb25hbFVpbnQ2NBInCg9vcHRpb25hbF9zaW50MzIYBSABKBFSDm9wdGlvbmFsU2ludDMyEicKD29wdGlvbmFsX3NpbnQ2NBgGIAEoElIOb3B0aW9uYWxTaW50NjQSKQoQb3B0aW9uYWxfZml4ZWQzMhgHIAEoB1IPb3B0aW9uYWxGaXhlZDMyEikKEG9wdGlvbmFsX2ZpeGVkNjQYCCABKAZSD29wdGlvbmFsRml4ZWQ2NBIrChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoD1IQb3B0aW9uYWxTZml4ZWQzMhIrChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEFIQb3B0aW9uYWxTZml4ZWQ2NBIlCg5vcHRpb25hbF9mbG9hdBgLIAEoAlINb3B0aW9uYWxGbG9hdBInCg9vcHRpb25hbF9kb3VibGUYDCABKAFSDm9wdGlvbmFsRG91YmxlEiMKDW9wdGlvbmFsX2Jvb2wYDSABKAhSDG9wdGlvbmFsQm9vbBInCg9vcHRpb25hbF9zdHJpbmcYDiABKAlSDm9wdGlvbmFsU3RyaW5nEiUKDm9wdGlvbmFsX2J5dGVzGA8gASgMUg1vcHRpb25hbEJ5dGVzEncKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRJnChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyLS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduTWVzc2FnZVIWb3B0aW9uYWxGb3JlaWduTWVzc2FnZRJuChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtUhJvcHRpb25hbE5lc3RlZEVudW0SXgoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMioucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbkVudW1SE29wdGlvbmFsRm9yZWlnbkVudW0ScQoVb3B0aW9uYWxfYWxpYXNlZF9lbnVtGBcgASgOMj0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLkFsaWFzZWRFbnVtUhNvcHRpb25hbEFsaWFzZWRFbnVtEjYKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAJSE29wdGlvbmFsU3RyaW5nUGllY2USJwoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAFSDG9wdGlvbmFsQ29yZBJeChFyZWN1cnNpdmVfbWVzc2FnZRgbIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvM1IQcmVjdXJzaXZlTWVzc2FnZRIlCg5yZXBlYXRlZF9pbnQzMhgfIAMoBVINcmVwZWF0ZWRJbnQzMhIlCg5yZXBlYXRlZF9pbnQ2NBggIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg9yZXBlYXRlZF91aW50MzIYISADKA1SDnJlcGVhdGVkVWludDMyEicKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBFIOcmVwZWF0ZWRVaW50NjQSJwoPcmVwZWF0ZWRfc2ludDMyGCMgAygRUg5yZXBlYXRlZFNpbnQzMhInCg9yZXBlYXRlZF9zaW50NjQYJCADKBJSDnJlcGVhdGVkU2ludDY0EikKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAdSD3JlcGVhdGVkRml4ZWQzMhIpChByZXBlYXRlZF9maXhlZDY0GCYgAygGUg9yZXBlYXRlZEZpeGVkNjQSKwoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA9SEHJlcGVhdGVkU2ZpeGVkMzISKwoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBBSEHJlcGVhdGVkU2ZpeGVkNjQSJQoOcmVwZWF0ZWRfZmxvYXQYKSADKAJSDXJlcGVhdGVkRmxvYXQSJwoPcmVwZWF0ZWRfZG91YmxlGCogAygBUg5yZXBlYXRlZERvdWJsZRIjCg1yZXBlYXRlZF9ib29sGCsgAygIUgxyZXBlYXRlZEJvb2wSJwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJUg5yZXBlYXRlZFN0cmluZxIlCg5yZXBlYXRlZF9ieXRlcxgtIAMoDFINcmVwZWF0ZWRCeXRlcxJ3ChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlUhVyZXBlYXRlZE5lc3RlZE1lc3NhZ2USZwoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMi0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbk1lc3NhZ2VSFnJlcGVhdGVkRm9yZWlnbk1lc3NhZ2USbgoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bVIScmVwZWF0ZWROZXN0ZWRFbnVtEl4KFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIqLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25FbnVtUhNyZXBlYXRlZEZvcmVpZ25FbnVtEjYKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAJSE3JlcGVhdGVkU3RyaW5nUGllY2USJwoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAFSDHJlcGVhdGVkQ29yZBIlCgxwYWNrZWRfaW50MzIYSyADKAVCAhABUgtwYWNrZWRJbnQzMhIlCgxwYWNrZWRfaW50NjQYTCADKANCAhABUgtwYWNrZWRJbnQ2NBInCg1wYWNrZWRfdWludDMyGE0gAygNQgIQAVIMcGFja2VkVWludDMyEicKDXBhY2tlZF91aW50NjQYTiADKARCAhABUgxwYWNrZWRVaW50NjQSJwoNcGFja2VkX3NpbnQzMhhPIAMoEUICEAFSDHBhY2tlZFNpbnQzMhInCg1wYWNrZWRfc2ludDY0GFAgAygSQgIQAVIMcGFja2VkU2ludDY0EikKDnBhY2tlZF9maXhlZDMyGFEgAygHQgIQAVINcGFja2VkRml4ZWQzMhIpCg5wYWNrZWRfZml4ZWQ2NBhSIAMoBkICEAFSDXBhY2tlZEZpeGVkNjQSKwoPcGFja2VkX3NmaXhlZDMyGFMgAygPQgIQAVIOcGFja2VkU2ZpeGVkMzISKwoPcGFja2VkX3NmaXhlZDY0GFQgAygQQgIQAVIOcGFja2VkU2ZpeGVkNjQSJQoMcGFja2VkX2Zsb2F0GFUgAygCQgIQAVILcGFja2VkRmxvYXQSJwoNcGFja2VkX2RvdWJsZRhWIAMoAUICEAFSDHBhY2tlZERvdWJsZRIjCgtwYWNrZWRfYm9vbBhXIAMoCEICEAFSCnBhY2tlZEJvb2wSbgoScGFja2VkX25lc3RlZF9lbnVtGFggAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1CAhABUhBwYWNrZWROZXN0ZWRFbnVtEikKDnVucGFja2VkX2ludDMyGFkgAygFQgIQAFINdW5wYWNrZWRJbnQzMhIpCg51bnBhY2tlZF9pbnQ2NBhaIAMoA0ICEABSDXVucGFja2VkSW50NjQSKwoPdW5wYWNrZWRfdWludDMyGFsgAygNQgIQAFIOdW5wYWNrZWRVaW50MzISKwoPdW5wYWNrZWRfdWludDY0GFwgAygEQgIQAFIOdW5wYWNrZWRVaW50NjQSKwoPdW5wYWNrZWRfc2ludDMyGF0gAygRQgIQAFIOdW5wYWNrZWRTaW50MzISKwoPdW5wYWNrZWRfc2ludDY0GF4gAygSQgIQAFIOdW5wYWNrZWRTaW50NjQSLQoQdW5wYWNrZWRfZml4ZWQzMhhfIAMoB0ICEABSD3VucGFja2VkRml4ZWQzMhItChB1bnBhY2tlZF9maXhlZDY0GGAgAygGQgIQAFIPdW5wYWNrZWRGaXhlZDY0Ei8KEXVucGFja2VkX3NmaXhlZDMyGGEgAygPQgIQAFIQdW5wYWNrZWRTZml4ZWQzMhIvChF1bnBhY2tlZF9zZml4ZWQ2NBhiIAMoEEICEABSEHVucGFja2VkU2ZpeGVkNjQSKQoOdW5wYWNrZWRfZmxvYXQYYyADKAJCAhAAUg11bnBhY2tlZEZsb2F0EisKD3VucGFja2VkX2RvdWJsZRhkIAMoAUICEABSDnVucGFja2VkRG91YmxlEicKDXVucGFja2VkX2Jvb2wYZSADKAhCAhAAUgx1bnBhY2tlZEJvb2wScgoUdW5wYWNrZWRfbmVzdGVkX2VudW0YZiADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bUICEABSEnVucGFja2VkTmVzdGVkRW51bRJsCg9tYXBfaW50MzJfaW50MzIYOCADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJJbnQzMkVudHJ5Ug1tYXBJbnQzMkludDMyEmwKD21hcF9pbnQ2NF9pbnQ2NBg5IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBJbnQ2NEludDY0RW50cnlSDW1hcEludDY0SW50NjQScgoRbWFwX3VpbnQzMl91aW50MzIYOiADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwVWludDMyVWludDMyRW50cnlSD21hcFVpbnQzMlVpbnQzMhJyChFtYXBfdWludDY0X3VpbnQ2NBg7IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBVaW50NjRVaW50NjRFbnRyeVIPbWFwVWludDY0VWludDY0EnIKEW1hcF9zaW50MzJfc2ludDMyGDwgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNpbnQzMlNpbnQzMkVudHJ5Ug9tYXBTaW50MzJTaW50MzIScgoRbWFwX3NpbnQ2NF9zaW50NjQYPSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU2ludDY0U2ludDY0RW50cnlSD21hcFNpbnQ2NFNpbnQ2NBJ4ChNtYXBfZml4ZWQzMl9maXhlZDMyGD4gAygLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEZpeGVkMzJGaXhlZDMyRW50cnlSEW1hcEZpeGVkMzJGaXhlZDMyEngKE21hcF9maXhlZDY0X2ZpeGVkNjQYPyADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeVIRbWFwRml4ZWQ2NEZpeGVkNjQSfgoVbWFwX3NmaXhlZDMyX3NmaXhlZDMyGEAgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeVITbWFwU2ZpeGVkMzJTZml4ZWQzMhJ+ChVtYXBfc2ZpeGVkNjRfc2ZpeGVkNjQYQSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5UhNtYXBTZml4ZWQ2NFNmaXhlZDY0EmwKD21hcF9pbnQzMl9mbG9hdBhCIAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBJbnQzMkZsb2F0RW50cnlSDW1hcEludDMyRmxvYXQSbwoQbWFwX2ludDMyX2RvdWJsZRhDIAMoCzJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBJbnQzMkRvdWJsZUVudHJ5Ug5tYXBJbnQzMkRvdWJsZRJmCg1tYXBfYm9vbF9ib29sGEQgAygLMkIucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEJvb2xCb29sRW50cnlSC21hcEJvb2xCb29sEnIKEW1hcF9zdHJpbmdfc3RyaW5nGEUgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ1N0cmluZ0VudHJ5Ug9tYXBTdHJpbmdTdHJpbmcSbwoQbWFwX3N0cmluZ19ieXRlcxhGIAMoCzJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdCeXRlc0VudHJ5Ug5tYXBTdHJpbmdCeXRlcxKIAQoZbWFwX3N0cmluZ19uZXN0ZWRfbWVzc2FnZRhHIAMoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnlSFm1hcFN0cmluZ05lc3RlZE1lc3NhZ2USiwEKGm1hcF9zdHJpbmdfZm9yZWlnbl9tZXNzYWdlGEggAygLMk4ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnlSF21hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlEn8KFm1hcF9zdHJpbmdfbmVzdGVkX2VudW0YSSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5UhNtYXBTdHJpbmdOZXN0ZWRFbnVtEoIBChdtYXBfc3RyaW5nX2ZvcmVpZ25fZW51bRhKIAMoCzJLLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdGb3JlaWduRW51bUVudHJ5UhRtYXBTdHJpbmdGb3JlaWduRW51bRIjCgxvbmVvZl91aW50MzIYbyABKA1IAFILb25lb2ZVaW50MzIScwoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZUgAUhJvbmVvZk5lc3RlZE1lc3NhZ2USIwoMb25lb2Zfc3RyaW5nGHEgASgJSABSC29uZW9mU3RyaW5nEiEKC29uZW9mX2J5dGVzGHIgASgMSABSCm9uZW9mQnl0ZXMSHwoKb25lb2ZfYm9vbBhzIAEoCEgAUglvbmVvZkJvb2wSIwoMb25lb2ZfdWludDY0GHQgASgESABSC29uZW9mVWludDY0EiEKC29uZW9mX2Zsb2F0GHUgASgCSABSCm9uZW9mRmxvYXQSIwoMb25lb2ZfZG91YmxlGHYgASgBSABSC29uZW9mRG91YmxlEl0KCm9uZW9mX2VudW0YdyABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bUgAUglvbmVvZkVudW0SRgoQb25lb2ZfbnVsbF92YWx1ZRh4IAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVIAFIOb25lb2ZOdWxsVmFsdWUSTwoVb3B0aW9uYWxfYm9vbF93cmFwcGVyGMkBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSE29wdGlvbmFsQm9vbFdyYXBwZXISUgoWb3B0aW9uYWxfaW50MzJfd3JhcHBlchjKASABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZVIUb3B0aW9uYWxJbnQzMldyYXBwZXISUgoWb3B0aW9uYWxfaW50NjRfd3JhcHBlchjLASABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZVIUb3B0aW9uYWxJbnQ2NFdyYXBwZXISVQoXb3B0aW9uYWxfdWludDMyX3dyYXBwZXIYzAEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlUhVvcHRpb25hbFVpbnQzMldyYXBwZXISVQoXb3B0aW9uYWxfdWludDY0X3dyYXBwZXIYzQEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUhVvcHRpb25hbFVpbnQ2NFdyYXBwZXISUgoWb3B0aW9uYWxfZmxvYXRfd3JhcHBlchjOASABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIUb3B0aW9uYWxGbG9hdFdyYXBwZXISVQoXb3B0aW9uYWxfZG91YmxlX3dyYXBwZXIYzwEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUhVvcHRpb25hbERvdWJsZVdyYXBwZXISVQoXb3B0aW9uYWxfc3RyaW5nX3dyYXBwZXIY0AEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlUhVvcHRpb25hbFN0cmluZ1dyYXBwZXISUgoWb3B0aW9uYWxfYnl0ZXNfd3JhcHBlchjRASABKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZVIUb3B0aW9uYWxCeXRlc1dyYXBwZXISTwoVcmVwZWF0ZWRfYm9vbF93cmFwcGVyGNMBIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSE3JlcGVhdGVkQm9vbFdyYXBwZXISUgoWcmVwZWF0ZWRfaW50MzJfd3JhcHBlchjUASADKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZVIUcmVwZWF0ZWRJbnQzMldyYXBwZXISUgoWcmVwZWF0ZWRfaW50NjRfd3JhcHBlchjVASADKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZVIUcmVwZWF0ZWRJbnQ2NFdyYXBwZXISVQoXcmVwZWF0ZWRfdWludDMyX3dyYXBwZXIY1gEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQzMlZhbHVlUhVyZXBlYXRlZFVpbnQzMldyYXBwZXISVQoXcmVwZWF0ZWRfdWludDY0X3dyYXBwZXIY1wEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUhVyZXBlYXRlZFVpbnQ2NFdyYXBwZXISUgoWcmVwZWF0ZWRfZmxvYXRfd3JhcHBlchjYASADKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIUcmVwZWF0ZWRGbG9hdFdyYXBwZXISVQoXcmVwZWF0ZWRfZG91YmxlX3dyYXBwZXIY2QEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUhVyZXBlYXRlZERvdWJsZVdyYXBwZXISVQoXcmVwZWF0ZWRfc3RyaW5nX3dyYXBwZXIY2gEgAygLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlUhVyZXBlYXRlZFN0cmluZ1dyYXBwZXISUgoWcmVwZWF0ZWRfYnl0ZXNfd3JhcHBlchjbASADKAsyGy5nb29nbGUucHJvdG9idWYuQnl0ZXNWYWx1ZVIUcmVwZWF0ZWRCeXRlc1dyYXBwZXISRwoRb3B0aW9uYWxfZHVyYXRpb24YrQIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUhBvcHRpb25hbER1cmF0aW9uEkoKEm9wdGlvbmFsX3RpbWVzdGFtcBiuAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUhFvcHRpb25hbFRpbWVzdGFtcBJLChNvcHRpb25hbF9maWVsZF9tYXNrGK8CIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSEW9wdGlvbmFsRmllbGRNYXNrEkEKD29wdGlvbmFsX3N0cnVjdBiwAiABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ug5vcHRpb25hbFN0cnVjdBI4CgxvcHRpb25hbF9hbnkYsQIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVILb3B0aW9uYWxBbnkSPgoOb3B0aW9uYWxfdmFsdWUYsgIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUg1vcHRpb25hbFZhbHVlEksKE29wdGlvbmFsX251bGxfdmFsdWUYswIgASgOMhouZ29vZ2xlLnByb3RvYnVmLk51bGxWYWx1ZVIRb3B0aW9uYWxOdWxsVmFsdWUSRwoRcmVwZWF0ZWRfZHVyYXRpb24YtwIgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUhByZXBlYXRlZER1cmF0aW9uEkoKEnJlcGVhdGVkX3RpbWVzdGFtcBi4AiADKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUhFyZXBlYXRlZFRpbWVzdGFtcBJKChJyZXBlYXRlZF9maWVsZG1hc2sYuQIgAygLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IRcmVwZWF0ZWRGaWVsZG1hc2sSQQoPcmVwZWF0ZWRfc3RydWN0GMQCIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSDnJlcGVhdGVkU3RydWN0EjgKDHJlcGVhdGVkX2FueRi7AiADKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgtyZXBlYXRlZEFueRI+Cg5yZXBlYXRlZF92YWx1ZRi8AiADKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSDXJlcGVhdGVkVmFsdWUSSwoTcmVwZWF0ZWRfbGlzdF92YWx1ZRi9AiADKAsyGi5nb29nbGUucHJvdG9idWYuTGlzdFZhbHVlUhFyZXBlYXRlZExpc3RWYWx1ZRIfCgpmaWVsZG5hbWUxGJEDIAEoBVIKZmllbGRuYW1lMRIgCgtmaWVsZF9uYW1lMhiSAyABKAVSCmZpZWxkTmFtZTISIQoMX2ZpZWxkX25hbWUzGJMDIAEoBVIKRmllbGROYW1lMxIiCg1maWVsZF9fbmFtZTRfGJQDIAEoBVIKZmllbGROYW1lNBIhCgtmaWVsZDBuYW1lNRiVAyABKAVSC2ZpZWxkMG5hbWU1EiMKDWZpZWxkXzBfbmFtZTYYlgMgASgFUgtmaWVsZDBOYW1lNhIfCgpmaWVsZE5hbWU3GJcDIAEoBVIKZmllbGROYW1lNxIfCgpGaWVsZE5hbWU4GJgDIAEoBVIKRmllbGROYW1lOBIgCgtmaWVsZF9OYW1lORiZAyABKAVSCmZpZWxkTmFtZTkSIgoMRmllbGRfTmFtZTEwGJoDIAEoBVILRmllbGROYW1lMTASIgoMRklFTERfTkFNRTExGJsDIAEoBVILRklFTEROQU1FMTESIgoMRklFTERfbmFtZTEyGJwDIAEoBVILRklFTEROYW1lMTISJAoOX19maWVsZF9uYW1lMTMYnQMgASgFUgtGaWVsZE5hbWUxMxIkCg5fX0ZpZWxkX25hbWUxNBieAyABKAVSC0ZpZWxkTmFtZTE0EiMKDWZpZWxkX19uYW1lMTUYnwMgASgFUgtmaWVsZE5hbWUxNRIjCg1maWVsZF9fTmFtZTE2GKADIAEoBVILZmllbGROYW1lMTYSJAoOZmllbGRfbmFtZTE3X18YoQMgASgFUgtmaWVsZE5hbWUxNxIkCg5GaWVsZF9uYW1lMThfXxiiAyABKAVSC0ZpZWxkTmFtZTE4GnIKDU5lc3RlZE1lc3NhZ2USDAoBYRgBIAEoBVIBYRJTCgtjb3JlY3Vyc2l2ZRgCIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvM1ILY29yZWN1cnNpdmUaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaQgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ARpBChNNYXBTdHJpbmdCeXRlc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgMUgV2YWx1ZToCOAEaigEKG01hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAlSA2tleRJVCgV2YWx1ZRgCIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlUgV2YWx1ZToCOAEaeQocTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAlSA2tleRJDCgV2YWx1ZRgCIAEoCzItLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25NZXNzYWdlUgV2YWx1ZToCOAEahAEKGE1hcFN0cmluZ05lc3RlZEVudW1FbnRyeRIQCgNrZXkYASABKAlSA2tleRJSCgV2YWx1ZRgCIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtUgV2YWx1ZToCOAEacwoZTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeRIQCgNrZXkYASABKAlSA2tleRJACgV2YWx1ZRgCIAEoDjIqLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25FbnVtUgV2YWx1ZToCOAEiOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASJZCgtBbGlhc2VkRW51bRINCglBTElBU19GT08QABINCglBTElBU19CQVIQARINCglBTElBU19CQVoQAhIHCgNNT08QAhIHCgNtb28QAhIHCgNiQXoQAhoCEAFCDQoLb25lb2ZfZmllbGRKBgj1AxD/AyIeCg5Gb3JlaWduTWVzc2FnZRIMCgFjGAEgASgFUgFjIhYKFE51bGxIeXBvdGhlc2lzUHJvdG8zIi8KDkVudW1Pbmx5UHJvdG8zIh0KBEJvb2wSCgoGa0ZhbHNlEAASCQoFa1RydWUQASpACgtGb3JlaWduRW51bRIPCgtGT1JFSUdOX0ZPTxAAEg8KC0ZPUkVJR05fQkFSEAESDwoLRk9SRUlHTl9CQVoQAkI4Cihjb20uZ29vZ2xlLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zSAH4AQGiAgZQcm90bzNKkXIKBxIFJQCfAgEKwA0KAQwSAyUAEjK1DSBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCiBUZXN0IHNjaGVtYSBmb3IgcHJvdG8zIG1lc3NhZ2VzLiAgVGhpcyB0ZXN0IHNjaGVtYSBpcyB1c2VkIGJ5OgoKIC0gYmVuY2htYXJrcwogLSBmdXp6IHRlc3RzCiAtIGNvbmZvcm1hbmNlIHRlc3RzCgoKCAoBAhIDJwAmCggKAQgSAykAQQoJCgIIARIDKQBBCggKAQgSAyoAJAoJCgIIJBIDKgAkCggKAQgSAy0AHApECgIICRIDLQAcGjkgVGhpcyBpcyB0aGUgZGVmYXVsdCwgYnV0IHdlIHNwZWNpZnkgaXQgaGVyZSBleHBsaWNpdGx5LgoKCQoCAwASAy8AIwoJCgIDARIDMAAoCgkKAgMCEgMxACoKCQoCAwMSAzIAJgoJCgIDBBIDMwApCgkKAgMFEgM0ACgKCAoBCBIDNgAfCgkKAggfEgM2AB8K2wIKAgQAEgU/AIwCARrNAiBUaGlzIHByb3RvIGluY2x1ZGVzIGV2ZXJ5IHR5cGUgb2YgZmllbGQgaW4gYm90aCBzaW5ndWxhciBhbmQgcmVwZWF0ZWQKIGZvcm1zLgoKIEFsc28sIGNydWNpYWxseSwgYWxsIG1lc3NhZ2VzIGFu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LnByb3RvMiK5UQoSVGVzdEFsbFR5cGVzUHJvdG8yEiUKDm9wdGlvbmFsX2ludDMyGAEgASgFUg1vcHRpb25hbEludDMyEiUKDm9wdGlvbmFsX2ludDY0GAIgASgDUg1vcHRpb25hbEludDY0EicKD29wdGlvbmFsX3VpbnQzMhgDIAEoDVIOb3B0aW9uYWxVaW50MzISJwoPb3B0aW9uYWxfdWludDY0GAQgASgEUg5vcHRpb25hbFVpbnQ2NBInCg9vcHRpb25hbF9zaW50MzIYBSABKBFSDm9wdGlvbmFsU2ludDMyEicKD29wdGlvbmFsX3NpbnQ2NBgGIAEoElIOb3B0aW9uYWxTaW50NjQSKQoQb3B0aW9uYWxfZml4ZWQzMhgHIAEoB1IPb3B0aW9uYWxGaXhlZDMyEikKEG9wdGlvbmFsX2ZpeGVkNjQYCCABKAZSD29wdGlvbmFsRml4ZWQ2NBIrChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoD1IQb3B0aW9uYWxTZml4ZWQzMhIrChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEFIQb3B0aW9uYWxTZml4ZWQ2NBIlCg5vcHRpb25hbF9mbG9hdBgLIAEoAlINb3B0aW9uYWxGbG9hdBInCg9vcHRpb25hbF9kb3VibGUYDCABKAFSDm9wdGlvbmFsRG91YmxlEiMKDW9wdGlvbmFsX2Jvb2wYDSABKAhSDG9wdGlvbmFsQm9vbBInCg9vcHRpb25hbF9zdHJpbmcYDiABKAlSDm9wdGlvbmFsU3RyaW5nEiUKDm9wdGlvbmFsX2J5dGVzGA8gASgMUg1vcHRpb25hbEJ5dGVzEncKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRJtChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlIWb3B0aW9uYWxGb3JlaWduTWVzc2FnZRJuChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtUhJvcHRpb25hbE5lc3RlZEVudW0SZAoVb3B0aW9uYWxfZm9yZWlnbl9lbnVtGBYgASgOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzJSE29wdGlvbmFsRm9yZWlnbkVudW0SNgoVb3B0aW9uYWxfc3RyaW5nX3BpZWNlGBggASgJQgIIAlITb3B0aW9uYWxTdHJpbmdQaWVjZRInCg1vcHRpb25hbF9jb3JkGBkgASgJQgIIAVIMb3B0aW9uYWxDb3JkEl4KEXJlY3Vyc2l2ZV9tZXNzYWdlGBsgASgLMjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yUhByZWN1cnNpdmVNZXNzYWdlEiUKDnJlcGVhdGVkX2ludDMyGB8gAygFUg1yZXBlYXRlZEludDMyEiUKDnJlcGVhdGVkX2ludDY0GCAgAygDUg1yZXBlYXRlZEludDY0EicKD3JlcGVhdGVkX3VpbnQzMhghIAMoDVIOcmVwZWF0ZWRVaW50MzISJwoPcmVwZWF0ZWRfdWludDY0GCIgAygEUg5yZXBlYXRlZFVpbnQ2NBInCg9yZXBlYXRlZF9zaW50MzIYIyADKBFSDnJlcGVhdGVkU2ludDMyEicKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoElIOcmVwZWF0ZWRTaW50NjQSKQoQcmVwZWF0ZWRfZml4ZWQzMhglIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEikKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAZSD3JlcGVhdGVkRml4ZWQ2NBIrChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoD1IQcmVwZWF0ZWRTZml4ZWQzMhIrChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEFIQcmVwZWF0ZWRTZml4ZWQ2NBIlCg5yZXBlYXRlZF9mbG9hdBgpIAMoAlINcmVwZWF0ZWRGbG9hdBInCg9yZXBlYXRlZF9kb3VibGUYKiADKAFSDnJlcGVhdGVkRG91YmxlEiMKDXJlcGVhdGVkX2Jvb2wYKyADKAhSDHJlcGVhdGVkQm9vbBInCg9yZXBlYXRlZF9zdHJpbmcYLCADKAlSDnJlcGVhdGVkU3RyaW5nEiUKDnJlcGVhdGVkX2J5dGVzGC0gAygMUg1yZXBlYXRlZEJ5dGVzEncKF3JlcGVhdGVkX25lc3RlZF9tZXNzYWdlGDAgAygLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VSFXJlcGVhdGVkTmVzdGVkTWVzc2FnZRJtChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlIWcmVwZWF0ZWRGb3JlaWduTWVzc2FnZRJuChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtUhJyZXBlYXRlZE5lc3RlZEVudW0SZAoVcmVwZWF0ZWRfZm9yZWlnbl9lbnVtGDQgAygOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzJSE3JlcGVhdGVkRm9yZWlnbkVudW0SNgoVcmVwZWF0ZWRfc3RyaW5nX3BpZWNlGDYgAygJQgIIAlITcmVwZWF0ZWRTdHJpbmdQaWVjZRInCg1yZXBlYXRlZF9jb3JkGDcgAygJQgIIAVIMcmVwZWF0ZWRDb3JkEiUKDHBhY2tlZF9pbnQzMhhLIAMoBUICEAFSC3BhY2tlZEludDMyEiUKDHBhY2tlZF9pbnQ2NBhMIAMoA0ICEAFSC3BhY2tlZEludDY0EicKDXBhY2tlZF91aW50MzIYTSADKA1CAhABUgxwYWNrZWRVaW50MzISJwoNcGFja2VkX3VpbnQ2NBhOIAMoBEICEAFSDHBhY2tlZFVpbnQ2NBInCg1wYWNrZWRfc2ludDMyGE8gAygRQgIQAVIMcGFja2VkU2ludDMyEicKDXBhY2tlZF9zaW50NjQYUCADKBJCAhABUgxwYWNrZWRTaW50NjQSKQoOcGFja2VkX2ZpeGVkMzIYUSADKAdCAhABUg1wYWNrZWRGaXhlZDMyEikKDnBhY2tlZF9maXhlZDY0GFIgAygGQgIQAVINcGFja2VkRml4ZWQ2NBIrCg9wYWNrZWRfc2ZpeGVkMzIYUyADKA9CAhABUg5wYWNrZWRTZml4ZWQzMhIrCg9wYWNrZWRfc2ZpeGVkNjQYVCADKBBCAhABUg5wYWNrZWRTZml4ZWQ2NBIlCgxwYWNrZWRfZmxvYXQYVSADKAJCAhABUgtwYWNrZWRGbG9hdBInCg1wYWNrZWRfZG91YmxlGFYgAygBQgIQAVIMcGFja2VkRG91YmxlEiMKC3BhY2tlZF9ib29sGFcgAygIQgIQAVIKcGFja2VkQm9vbBJuChJwYWNrZWRfbmVzdGVkX2VudW0YWCADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bUICEAFSEHBhY2tlZE5lc3RlZEVudW0SKQoOdW5wYWNrZWRfaW50MzIYWSADKAVCAhAAUg11bnBhY2tlZEludDMyEikKDnVucGFja2VkX2ludDY0GFogAygDQgIQAFINdW5wYWNrZWRJbnQ2NBIrCg91bnBhY2tlZF91aW50MzIYWyADKA1CAhAAUg51bnBhY2tlZFVpbnQzMhIrCg91bnBhY2tlZF91aW50NjQYXCADKARCAhAAUg51bnBhY2tlZFVpbnQ2NBIrCg91bnBhY2tlZF9zaW50MzIYXSADKBFCAhAAUg51bnBhY2tlZFNpbnQzMhIrCg91bnBhY2tlZF9zaW50NjQYXiADKBJCAhAAUg51bnBhY2tlZFNpbnQ2NBItChB1bnBhY2tlZF9maXhlZDMyGF8gAygHQgIQAFIPdW5wYWNrZWRGaXhlZDMyEi0KEHVucGFja2VkX2ZpeGVkNjQYYCADKAZCAhAAUg91bnBhY2tlZEZpeGVkNjQSLwoRdW5wYWNrZWRfc2ZpeGVkMzIYYSADKA9CAhAAUhB1bnBhY2tlZFNmaXhlZDMyEi8KEXVucGFja2VkX3NmaXhlZDY0GGIgAygQQgIQAFIQdW5wYWNrZWRTZml4ZWQ2NBIpCg51bnBhY2tlZF9mbG9hdBhjIAMoAkICEABSDXVucGFja2VkRmxvYXQSKwoPdW5wYWNrZWRfZG91YmxlGGQgAygBQgIQAFIOdW5wYWNrZWREb3VibGUSJwoNdW5wYWNrZWRfYm9vbBhlIAMoCEICEABSDHVucGFja2VkQm9vbBJyChR1bnBhY2tlZF9uZXN0ZWRfZW51bRhmIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtQgIQAFISdW5wYWNrZWROZXN0ZWRFbnVtEmwKD21hcF9pbnQzMl9pbnQzMhg4IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQzMkludDMyRW50cnlSDW1hcEludDMySW50MzISbAoPbWFwX2ludDY0X2ludDY0GDkgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJyChFtYXBfdWludDMyX3VpbnQzMhg6IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBVaW50MzJVaW50MzJFbnRyeVIPbWFwVWludDMyVWludDMyEnIKEW1hcF91aW50NjRfdWludDY0GDsgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFVpbnQ2NFVpbnQ2NEVudHJ5Ug9tYXBVaW50NjRVaW50NjQScgoRbWFwX3NpbnQzMl9zaW50MzIYPCADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJyChFtYXBfc2ludDY0X3NpbnQ2NBg9IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTaW50NjRTaW50NjRFbnRyeVIPbWFwU2ludDY0U2ludDY0EngKE21hcF9maXhlZDMyX2ZpeGVkMzIYPiADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwRml4ZWQzMkZpeGVkMzJFbnRyeVIRbWFwRml4ZWQzMkZpeGVkMzISeAoTbWFwX2ZpeGVkNjRfZml4ZWQ2NBg/IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJ+ChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYQCADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5UhNtYXBTZml4ZWQzMlNmaXhlZDMyEn4KFW1hcF9zZml4ZWQ2NF9zZml4ZWQ2NBhBIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnlSE21hcFNmaXhlZDY0U2ZpeGVkNjQSbAoPbWFwX2ludDMyX2Zsb2F0GEIgAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJvChBtYXBfaW50MzJfZG91YmxlGEMgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEludDMyRG91YmxlRW50cnlSDm1hcEludDMyRG91YmxlEmYKDW1hcF9ib29sX2Jvb2wYRCADKAsyQi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwQm9vbEJvb2xFbnRyeVILbWFwQm9vbEJvb2wScgoRbWFwX3N0cmluZ19zdHJpbmcYRSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nU3RyaW5nRW50cnlSD21hcFN0cmluZ1N0cmluZxJvChBtYXBfc3RyaW5nX2J5dGVzGEYgAygLMkUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0J5dGVzRW50cnlSDm1hcFN0cmluZ0J5dGVzEogBChltYXBfc3RyaW5nX25lc3RlZF9tZXNzYWdlGEcgAygLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeVIWbWFwU3RyaW5nTmVzdGVkTWVzc2FnZRKLAQoabWFwX3N0cmluZ19mb3JlaWduX21lc3NhZ2UYSCADKAsyTi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeVIXbWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2USfwoWbWFwX3N0cmluZ19uZXN0ZWRfZW51bRhJIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnlSE21hcFN0cmluZ05lc3RlZEVudW0SggEKF21hcF9zdHJpbmdfZm9yZWlnbl9lbnVtGEogAygLMksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnlSFG1hcFN0cmluZ0ZvcmVpZ25FbnVtEiMKDG9uZW9mX3VpbnQzMhhvIAEoDUgAUgtvbmVvZlVpbnQzMhJzChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhwIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlSABSEm9uZW9mTmVzdGVkTWVzc2FnZRIjCgxvbmVvZl9zdHJpbmcYcSABKAlIAFILb25lb2ZTdHJpbmcSIQoLb25lb2ZfYnl0ZXMYciABKAxIAFIKb25lb2ZCeXRlcxIfCgpvbmVvZl9ib29sGHMgASgISABSCW9uZW9mQm9vbBIjCgxvbmVvZl91aW50NjQYdCABKARIAFILb25lb2ZVaW50NjQSIQoLb25lb2ZfZmxvYXQYdSABKAJIAFIKb25lb2ZGbG9hdBIjCgxvbmVvZl9kb3VibGUYdiABKAFIAFILb25lb2ZEb3VibGUSXQoKb25lb2ZfZW51bRh3IAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtSABSCW9uZW9mRW51bRJLCgRkYXRhGMkBIAEoCjI2LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5EYXRhUgRkYXRhEjAKDWRlZmF1bHRfaW50MzIY8QEgASgFOgotMTIzNDU2Nzg5UgxkZWZhdWx0SW50MzISOgoNZGVmYXVsdF9pbnQ2NBjyASABKAM6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5UgxkZWZhdWx0SW50NjQSMgoOZGVmYXVsdF91aW50MzIY8wEgASgNOgoyMTIzNDU2Nzg5Ug1kZWZhdWx0VWludDMyEjwKDmRlZmF1bHRfdWludDY0GPQBIAEoBDoUMTAxMjM0NTY3ODkxMjM0NTY3ODlSDWRlZmF1bHRVaW50NjQSMgoOZGVmYXVsdF9zaW50MzIY9QEgASgROgotMTIzNDU2Nzg5Ug1kZWZhdWx0U2ludDMyEjwKDmRlZmF1bHRfc2ludDY0GPYBIAEoEjoULTkxMjM0NTY3ODkxMjM0NTY3ODlSDWRlZmF1bHRTaW50NjQSNAoPZGVmYXVsdF9maXhlZDMyGPcBIAEoBzoKMjEyMzQ1Njc4OVIOZGVmYXVsdEZpeGVkMzISPgoPZGVmYXVsdF9maXhlZDY0GPgBIAEoBjoUMTAxMjM0NTY3ODkxMjM0NTY3ODlSDmRlZmF1bHRGaXhlZDY0EjYKEGRlZmF1bHRfc2ZpeGVkMzIY+QEgASgPOgotMTIzNDU2Nzg5Ug9kZWZhdWx0U2ZpeGVkMzISQAoQZGVmYXVsdF9zZml4ZWQ2NBj6ASABKBA6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5Ug9kZWZhdWx0U2ZpeGVkNjQSKwoNZGVmYXVsdF9mbG9hdBj7ASABKAI6BTllKzA5UgxkZWZhdWx0RmxvYXQSLQoOZGVmYXVsdF9kb3VibGUY/AEgASgBOgU3ZSsyMlINZGVmYXVsdERvdWJsZRIoCgxkZWZhdWx0X2Jvb2wY/QEgASgIOgR0cnVlUgtkZWZhdWx0Qm9vbBIvCg5kZWZhdWx0X3N0cmluZxj+ASABKAk6B1Jvc2VidWRSDWRlZmF1bHRTdHJpbmcSLAoNZGVmYXVsdF9ieXRlcxj/ASABKAw6Bmpvc2h1YVIMZGVmYXVsdEJ5dGVzEh8KCmZpZWxkbmFtZTEYkQMgASgFUgpmaWVsZG5hbWUxEiAKC2ZpZWxkX25hbWUyGJIDIAEoBVIKZmllbGROYW1lMhIhCgxfZmllbGRfbmFtZTMYkwMgASgFUgpGaWVsZE5hbWUzEiIKDWZpZWxkX19uYW1lNF8YlAMgASgFUgpmaWVsZE5hbWU0EiEKC2ZpZWxkMG5hbWU1GJUDIAEoBVILZmllbGQwbmFtZTUSIwoNZmllbGRfMF9uYW1lNhiWAyABKAVSC2ZpZWxkME5hbWU2Eh8KCmZpZWxkTmFtZTcYlwMgASgFUgpmaWVsZE5hbWU3Eh8KCkZpZWxkTmFtZTgYmAMgASgFUgpGaWVsZE5hbWU4EiAKC2ZpZWxkX05hbWU5GJkDIAEoBVIKZmllbGROYW1lORIiCgxGaWVsZF9OYW1lMTAYmgMgASgFUgtGaWVsZE5hbWUxMBIiCgxGSUVMRF9OQU1FMTEYmwMgASgFUgtGSUVMRE5BTUUxMRIiCgxGSUVMRF9uYW1lMTIYnAMgASgFUgtGSUVMRE5hbWUxMhIkCg5fX2ZpZWxkX25hbWUxMxidAyABKAVSC0ZpZWxkTmFtZTEzEiQKDl9fRmllbGRfbmFtZTE0GJ4DIAEoBVILRmllbGROYW1lMTQSIwoNZmllbGRfX25hbWUxNRifAyABKAVSC2ZpZWxkTmFtZTE1EiMKDWZpZWxkX19OYW1lMTYYoAMgASgFUgtmaWVsZE5hbWUxNhIkCg5maWVsZF9uYW1lMTdfXxihAyABKAVSC2ZpZWxkTmFtZTE3EiQKDkZpZWxkX25hbWUxOF9fGKIDIAEoBVILRmllbGROYW1lMTgacgoNTmVzdGVkTWVzc2FnZRIMCgFhGAEgASgFUgFhElMKC2NvcmVjdXJzaXZlGAIgASgLMjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yUgtjb3JlY3Vyc2l2ZRpAChJNYXBJbnQzMkludDMyRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAVSBXZhbHVlOgI4ARpAChJNYXBJbnQ2NEludDY0RW50cnkSEAoDa2V5GAEgASgDUgNrZXkSFAoFdmFsdWUYAiABKANSBXZhbHVlOgI4ARpCChRNYXBVaW50MzJVaW50MzJFbnRyeRIQCgNrZXkYASABKA1SA2tleRIUCgV2YWx1ZRgCIAEoDVIFdmFsdWU6AjgBGkIKFE1hcFVpbnQ2NFVpbnQ2NEVudHJ5EhAKA2tleRgBIAEoBFIDa2V5EhQKBXZhbHVlGAIgASgEUgV2YWx1ZToCOAEaQgoUTWFwU2ludDMyU2ludDMyRW50cnkSEAoDa2V5GAEgASgRUgNrZXkSFAoFdmFsdWUYAiABKBFSBXZhbHVlOgI4ARpCChRNYXBTaW50NjRTaW50NjRFbnRyeRIQCgNrZXkYASABKBJSA2tleRIUCgV2YWx1ZRgCIAEoElIFdmFsdWU6AjgBGkQKFk1hcEZpeGVkMzJGaXhlZDMyRW50cnkSEAoDa2V5GAEgASgHUgNrZXkSFAoFdmFsdWUYAiABKAdSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5EhAKA2tleRgBIAEoBlIDa2V5EhQKBXZhbHVlGAIgASgGUgV2YWx1ZToCOAEaRgoYTWFwU2ZpeGVkMzJTZml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoD1IDa2V5EhQKBXZhbHVlGAIgASgPUgV2YWx1ZToCOAEaRgoYTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5EhAKA2tleRgBIAEoEFIDa2V5EhQKBXZhbHVlGAIgASgQUgV2YWx1ZToCOAEaQAoSTWFwSW50MzJGbG9hdEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgCUgV2YWx1ZToCOAEaQQoTTWFwSW50MzJEb3VibGVFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAVIFdmFsdWU6AjgBGj4KEE1hcEJvb2xCb29sRW50cnkSEAoDa2V5GAEgASgIUgNrZXkSFAoFdmFsdWUYAiABKAhSBXZhbHVlOgI4ARpCChRNYXBTdHJpbmdTdHJpbmdFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBGkEKE01hcFN0cmluZ0J5dGVzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ARqKAQobTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5ElUKBXZhbHVlGAIgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZE1lc3NhZ2VSBXZhbHVlOgI4ARp/ChxNYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EkkKBXZhbHVlGAIgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzJSBXZhbHVlOgI4ARqEAQoYTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5ElIKBXZhbHVlGAIgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1SBXZhbHVlOgI4ARp5ChlNYXBTdHJpbmdGb3JlaWduRW51bUVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EkYKBXZhbHVlGAIgASgOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzJSBXZhbHVlOgI4ARpMCgREYXRhEiAKC2dyb3VwX2ludDMyGMoBIAEoBVIKZ3JvdXBJbnQzMhIiCgxncm91cF91aW50MzIYywEgASgNUgtncm91cFVpbnQzMhohChFNZXNzYWdlU2V0Q29ycmVjdCoICAQQ/////wc6AggBGvoBChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjESEAoDc3RyGBkgASgJUgNzdHIyyAEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJDLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBj5u14gASgLMk0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMVITbWVzc2FnZVNldEV4dGVuc2lvbhr3AQobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24yEgwKAWkYCSABKAVSAWkyyQEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJDLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBiQs/wBIAEoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjJSE21lc3NhZ2VTZXRFeHRlbnNpb24iOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASoFCHgQyQFCDQoLb25lb2ZfZmllbGRKBgjoBxCQTiIkChRGb3JlaWduTWVzc2FnZVByb3RvMhIMCgFjGAEgASgFUgFjIp4DChVVbmtub3duVG9UZXN0QWxsVHlwZXMSJgoOb3B0aW9uYWxfaW50MzIY6QcgASgFUg1vcHRpb25hbEludDMyEigKD29wdGlvbmFsX3N0cmluZxjqByABKAlSDm9wdGlvbmFsU3RyaW5nElsKDm5lc3RlZF9tZXNzYWdlGOsHIAEoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yUg1uZXN0ZWRNZXNzYWdlEmkKDW9wdGlvbmFsZ3JvdXAY7AcgASgKMkIucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVW5rbm93blRvVGVzdEFsbFR5cGVzLk9wdGlvbmFsR3JvdXBSDW9wdGlvbmFsZ3JvdXASJAoNb3B0aW9uYWxfYm9vbBjuByABKAhSDG9wdGlvbmFsQm9vbBImCg5yZXBlYXRlZF9pbnQzMhjzByADKAVSDXJlcGVhdGVkSW50MzIaHQoNT3B0aW9uYWxHcm91cBIMCgFhGAEgASgFUgFhIhYKFE51bGxIeXBvdGhlc2lzUHJvdG8yIi8KDkVudW1Pbmx5UHJvdG8yIh0KBEJvb2wSCgoGa0ZhbHNlEAASCQoFa1RydWUQASIlCg9PbmVTdHJpbmdQcm90bzISEgoEZGF0YRgBIAEoCVIEZGF0YSJhChFQcm90b1dpdGhLZXl3b3JkcxIWCgZpbmxpbmUYASABKAVSBmlubGluZRIYCgdjb25jZXB0GAIgASgJUgdjb25jZXB0EhoKCHJlcXVpcmVzGAMgAygJUghyZXF1aXJlcyLMGQoaVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzISJQoOcmVxdWlyZWRfaW50MzIYASACKAVSDXJlcXVpcmVkSW50MzISJQoOcmVxdWlyZWRfaW50NjQYAiACKANSDXJlcXVpcmVkSW50NjQSJwoPcmVxdWlyZWRfdWludDMyGAMgAigNUg5yZXF1aXJlZFVpbnQzMhInCg9yZXF1aXJlZF91aW50NjQYBCACKARSDnJlcXVpcmVkVWludDY0EicKD3JlcXVpcmVkX3NpbnQzMhgFIAIoEVIOcmVxdWlyZWRTaW50MzISJwoPcmVxdWlyZWRfc2ludDY0GAYgAigSUg5yZXF1aXJlZFNpbnQ2NBIpChByZXF1aXJlZF9maXhlZDMyGAcgAigHUg9yZXF1aXJlZEZpeGVkMzISKQoQcmVxdWlyZWRfZml4ZWQ2NBgIIAIoBlIPcmVxdWlyZWRGaXhlZDY0EisKEXJlcXVpcmVkX3NmaXhlZDMyGAkgAigPUhByZXF1aXJlZFNmaXhlZDMyEisKEXJlcXVpcmVkX3NmaXhlZDY0GAogAigQUhByZXF1aXJlZFNmaXhlZDY0EiUKDnJlcXVpcmVkX2Zsb2F0GAsgAigCUg1yZXF1aXJlZEZsb2F0EicKD3JlcXVpcmVkX2RvdWJsZRgMIAIoAVIOcmVxdWlyZWREb3VibGUSIwoNcmVxdWlyZWRfYm9vbBgNIAIoCFIMcmVxdWlyZWRCb29sEicKD3JlcXVpcmVkX3N0cmluZxgOIAIoCVIOcmVxdWlyZWRTdHJpbmcSJQoOcmVxdWlyZWRfYnl0ZXMYDyACKAxSDXJlcXVpcmVkQnl0ZXMSfwoXcmVxdWlyZWRfbmVzdGVkX21lc3NhZ2UYEiACKAsyRy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlUhVyZXF1aXJlZE5lc3RlZE1lc3NhZ2USbQoYcmVxdWlyZWRfZm9yZWlnbl9tZXNzYWdlGBMgAigLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzJSFnJlcXVpcmVkRm9yZWlnbk1lc3NhZ2USdgoUcmVxdWlyZWRfbmVzdGVkX2VudW0YFSACKA4yRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtUhJyZXF1aXJlZE5lc3RlZEVudW0SZAoVcmVxdWlyZWRfZm9yZWlnbl9lbnVtGBYgAigOMjAucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbkVudW1Qcm90bzJSE3JlcXVpcmVkRm9yZWlnbkVudW0SNgoVcmVxdWlyZWRfc3RyaW5nX3BpZWNlGBggAigJQgIIAlITcmVxdWlyZWRTdHJpbmdQaWVjZRInCg1yZXF1aXJlZF9jb3JkGBkgAigJQgIIAVIMcmVxdWlyZWRDb3JkEmYKEXJlY3Vyc2l2ZV9tZXNzYWdlGBsgAigLMjkucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzJSEHJlY3Vyc2l2ZU1lc3NhZ2USdwoab3B0aW9uYWxfcmVjdXJzaXZlX21lc3NhZ2UYHCABKAsyOS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMlIYb3B0aW9uYWxSZWN1cnNpdmVNZXNzYWdlElMKBGRhdGEYyQEgAigKMj4ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuRGF0YVIEZGF0YRIwCg1kZWZhdWx0X2ludDMyGPEBIAIoBToKLTEyMzQ1Njc4OVIMZGVmYXVsdEludDMyEjoKDWRlZmF1bHRfaW50NjQY8gEgAigDOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4OVIMZGVmYXVsdEludDY0EjIKDmRlZmF1bHRfdWludDMyGPMBIAIoDToKMjEyMzQ1Njc4OVINZGVmYXVsdFVpbnQzMhI8Cg5kZWZhdWx0X3VpbnQ2NBj0ASACKAQ6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5Ug1kZWZhdWx0VWludDY0EjIKDmRlZmF1bHRfc2ludDMyGPUBIAIoEToKLTEyMzQ1Njc4OVINZGVmYXVsdFNpbnQzMhI8Cg5kZWZhdWx0X3NpbnQ2NBj2ASACKBI6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5Ug1kZWZhdWx0U2ludDY0EjQKD2RlZmF1bHRfZml4ZWQzMhj3ASACKAc6CjIxMjM0NTY3ODlSDmRlZmF1bHRGaXhlZDMyEj4KD2RlZmF1bHRfZml4ZWQ2NBj4ASACKAY6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5Ug5kZWZhdWx0Rml4ZWQ2NBI2ChBkZWZhdWx0X3NmaXhlZDMyGPkBIAIoDzoKLTEyMzQ1Njc4OVIPZGVmYXVsdFNmaXhlZDMyEkAKEGRlZmF1bHRfc2ZpeGVkNjQY+gEgAigQOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4OVIPZGVmYXVsdFNmaXhlZDY0EisKDWRlZmF1bHRfZmxvYXQY+wEgAigCOgU5ZSswOVIMZGVmYXVsdEZsb2F0Ei0KDmRlZmF1bHRfZG91YmxlGPwBIAIoAToFN2UrMjJSDWRlZmF1bHREb3VibGUSKAoMZGVmYXVsdF9ib29sGP0BIAIoCDoEdHJ1ZVILZGVmYXVsdEJvb2wSLwoOZGVmYXVsdF9zdHJpbmcY/gEgAigJOgdSb3NlYnVkUg1kZWZhdWx0U3RyaW5nEiwKDWRlZmF1bHRfYnl0ZXMY/wEgAigMOgZqb3NodWFSDGRlZmF1bHRCeXRlcxroAQoNTmVzdGVkTWVzc2FnZRIMCgFhGAEgAigFUgFhElsKC2NvcmVjdXJzaXZlGAIgAigLMjkucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzJSC2NvcmVjdXJzaXZlEmwKFG9wdGlvbmFsX2NvcmVjdXJzaXZlGAMgASgLMjkucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzJSE29wdGlvbmFsQ29yZWN1cnNpdmUaTAoERGF0YRIgCgtncm91cF9pbnQzMhjKASACKAVSCmdyb3VwSW50MzISIgoMZ3JvdXBfdWludDMyGMsBIAIoDVILZ3JvdXBVaW50MzIaIQoRTWVzc2FnZVNldENvcnJlY3QqCAgEEP////8HOgIIARqKAgobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xEhAKA3N0chgZIAIoCVIDc3RyMtgBChVtZXNzYWdlX3NldF9leHRlbnNpb24SSy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdBj5u14gASgLMlUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xUhNtZXNzYWdlU2V0RXh0ZW5zaW9uGocCChtNZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjISDAoBaRgJIAIoBVIBaTLZAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3QYkLP8ASABKAsyVS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsUmVxdWlyZWRUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjJSE21lc3NhZ2VTZXRFeHRlbnNpb24iOQoKTmVzdGVkRW51bRIHCgNGT08QABIHCgNCQVIQARIHCgNCQVoQAhIQCgNORUcQ////////////ASoFCHgQyQFKBgjoBxCQTipGChFGb3JlaWduRW51bVByb3RvMhIPCgtGT1JFSUdOX0ZPTxAAEg8KC0ZPUkVJR05fQkFSEAESDwoLRk9SRUlHTl9CQVoQAjpaCg9leHRlbnNpb25faW50MzISMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIYeCABKAVSDmV4dGVuc2lvbkludDMyQjgKKGNvbS5nb29nbGUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzJIAfgBAaICBlByb3RvMkqepAEKBxIFJQCMAwEKug0KAQwSAyUAEjKZDSBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI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AAIuEgN/AjUKDAoFBAACLgQSA38CCgoMCgUEAAIuBRIDfwsRCgwKBQQAAi4BEgN/Eh8KDAoFBAACLgMSA38iJAoMCgUEAAIuCBIDfyU0Cg0KBgQAAi4IAhIDfyYzCgwKBAQAAi8SBIABAjUKDQoFBAACLwQSBIABAgoKDQoFBAACLwUSBIABCxEKDQoFBAACLwESBIABEh8KDQoFBAACLwMSBIABIiQKDQoFBAACLwgSBIABJTQKDgoGBAACLwgCEgSAASYzCgwKBAQAAjASBIEBAjUKDQoFBAACMAQSBIEBAgoKDQoFBAACMAUSBIEBCxEKDQoFBAACMAESBIEBEh8KDQoFBAACMAMSBIEBIiQKDQoFBAACMAgSBIEBJTQKDgoGBAACMAgCEgSBASYzCgwKBAQAAjESBIIBAjcKDQoFBAACMQQSBIIBAgoKDQoFBAACMQUSBIIBCxIKDQoFBAACMQESBIIBEyEKDQoFBAACMQMSBIIBJCYKDQoFBAACMQgSBIIBJzYKDgoGBAACMQgCEgSCASg1CgwKBAQAAjISBIMBAjcKDQoFBAACMgQSBIMBAgoKDQoFBAACMgUSBIMBCxIKDQoFBAACMgESBIMBEyEKDQoFBAACMgMSBIMBJCYKDQoFBAACMggSBIMBJzYKDgoGBAACMggCEgSDASg1CgwKBAQAAjMSBIQBAjkKDQoFBAACMwQSBIQBAgoKDQoFBAACMwUSBIQBCxMKDQoFBAACMwESBIQBFCMKDQoFBAACMwMSBIQBJigKDQoFBAACMwgSBIQBKTgKDgoGBAACMwgCEgSEASo3CgwKBAQAAjQSBIUBAjkKDQoFBAACNAQSBIUBAgoKDQoFBAACNAUSBIUBCxMKDQoFBAACNAESBIUBFCMKDQoFBAACNAMSBIUBJigKDQoFBAACNAgSBIUBKTgKDgoGBAACNAgCEgSFASo3CgwKBAQAAjUSBIYBAjMKDQoFBAACNQQSBIYBAgoKDQoFBAACNQUSBIYBCxAKDQoFBAACNQESBIYBER0KDQoFBAACNQMSBIYBICIKDQoFBAACNQgSBIYBIzIKDgoGBAACNQgCEgSGASQxCgwKBAQAAjYSBIcBAjUKDQoFBAACNgQSBIcBAgoKDQoFBAACNgUSBIcBCxEKDQoFBAACNgESBIcBEh8KDQoFBAACNgMSBIcB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GAYgASgSSAVSDm9wdGlvbmFsU2ludDY0iAEBEi4KEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdIBlIPb3B0aW9uYWxGaXhlZDMyiAEBEi4KEG9wdGlvbmFsX2ZpeGVkNjQYCCABKAZIB1IPb3B0aW9uYWxGaXhlZDY0iAEBEjAKEW9wdGlvbmFsX3NmaXhlZDMyGAkgASgPSAhSEG9wdGlvbmFsU2ZpeGVkMzKIAQESMAoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBICVIQb3B0aW9uYWxTZml4ZWQ2NIgBARIqCg5vcHRpb25hbF9mbG9hdBgLIAEoAkgKUg1vcHRpb25hbEZsb2F0iAEBEiwKD29wdGlvbmFsX2RvdWJsZRgMIAEoAUgLUg5vcHRpb25hbERvdWJsZYgBARIoCg1vcHRpb25hbF9ib29sGA0gASgISAxSDG9wdGlvbmFsQm9vbIgBARIsCg9vcHRpb25hbF9zdHJpbmcYDiABKAlIDVIOb3B0aW9uYWxTdHJpbmeIAQESKgoOb3B0aW9uYWxfYnl0ZXMYDyABKAxIDlINb3B0aW9uYWxCeXRlc4gBARIsCg1vcHRpb25hbF9jb3JkGBAgASgJQgIIAUgPUgxvcHRpb25hbENvcmSIAQEScAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWwuTmVzdGVkTWVzc2FnZUgQUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2WIAQESbAoTbGF6eV9uZXN0ZWRfbWVzc2FnZRgTIAEoCzIzLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbC5OZXN0ZWRNZXNzYWdlQgIoAUgRUhFsYXp5TmVzdGVkTWVzc2FnZYgBARJnChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIwLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbC5OZXN0ZWRFbnVtSBJSEm9wdGlvbmFsTmVzdGVkRW51bYgBARIlCg5zaW5ndWxhcl9pbnQzMhgWIAEoBVINc2luZ3VsYXJJbnQzMhIlCg5zaW5ndWxhcl9pbnQ2NBgXIAEoA1INc2luZ3VsYXJJbnQ2NBorCg1OZXN0ZWRNZXNzYWdlEhMKAmJiGAEgASgFSABSAmJiiAEBQgUKA19iYiJKCgpOZXN0ZWRFbnVtEg8KC1VOU1BFQ0lGSUVEEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCEQoPX29wdGlvbmFsX2ludDMyQhEKD19vcHRpb25hbF9pbnQ2NEISChBfb3B0aW9uYWxfdWludDMyQhIKEF9vcHRpb25hbF91aW50NjRCEgoQX29wdGlvbmFsX3NpbnQzMkISChBfb3B0aW9uYWxfc2ludDY0QhMKEV9vcHRpb25hbF9maXhlZDMyQhMKEV9vcHRpb25hbF9maXhlZDY0QhQKEl9vcHRpb25hbF9zZml4ZWQzMkIUChJfb3B0aW9uYWxfc2ZpeGVkNjRCEQoPX29wdGlvbmFsX2Zsb2F0QhIKEF9vcHRpb25hbF9kb3VibGVCEAoOX29wdGlvbmFsX2Jvb2xCEgoQX29wdGlvbmFsX3N0cmluZ0IRCg9fb3B0aW9uYWxfYnl0ZXNCEAoOX29wdGlvbmFsX2NvcmRCGgoYX29wdGlvbmFsX25lc3RlZF9tZXNzYWdlQhYKFF9sYXp5X25lc3RlZF9tZXNzYWdlQhcKFV9vcHRpb25hbF9uZXN0ZWRfZW51bSKyAgoZVGVzdFByb3RvM09wdGlvbmFsTWVzc2FnZRJhCg5uZXN0ZWRfbWVzc2FnZRgBIAEoCzI6LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbE1lc3NhZ2UuTmVzdGVkTWVzc2FnZVINbmVzdGVkTWVzc2FnZRJ3ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgCIAEoCzI6LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQcm90bzNPcHRpb25hbE1lc3NhZ2UuTmVzdGVkTWVzc2FnZUgAUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2WIAQEaHQoNTmVzdGVkTWVzc2FnZRIMCgFzGAEgASgJUgFzQhoKGF9vcHRpb25hbF9uZXN0ZWRfbWVzc2FnZSLJAQoYUHJvdG8zT3B0aW9uYWxFeHRlbnNpb25zMksKD2V4dF9ub19vcHRpb25hbBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiIzdmpASABKAVSDWV4dE5vT3B0aW9uYWwyUgoRZXh0X3dpdGhfb3B0aW9uYWwSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYic3ZqQEgASgFUg9leHRXaXRoT3B0aW9uYWyIAQE6DMDozM0KCMjozM0KEEI4CiFjb20uZ29vZ2xlLnByb3RvYnVmLnRlc3RpbmcucHJvdG9QAaoCEFByb3RvYnVmVW5pdHRlc3RKmyIKBhIEHgBkAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV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