CosPCjFjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wdWJsaWNfcHJvdG8zLnByb3RvEhhwcm90b2J1Zl91bml0dGVzdF9pbXBvcnQiIwoTUHVibGljSW1wb3J0TWVzc2FnZRIMCgFlGAEgASgFUgFlQh2qAhpHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvc0rvDQoGEgQgACgBCvYMCgEMEgMgABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjIoIEF1dGhvcjogbGl1amlzaUBnb29nbGUuY29tIChQaGVybCBMaXUpCgoICgECEgMiACEKCAoBCBIDJAA3CgkKAgglEgMkADcKCgoCBAASBCYAKAEKCgoDBAABEgMmCBsKCwoEBAACABIDJwENCgwKBQQAAgAFEgMnAQYKDAoFBAACAAESAycHCAoMCgUEAAIAAxIDJwsMYgZwcm90bzMKnxMKKmNzaGFycC9wcm90b3MvdW5pdHRlc3RfaW1wb3J0X3Byb3RvMy5wcm90bxIYcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0GjFjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wdWJsaWNfcHJvdG8zLnByb3RvIh0KDUltcG9ydE1lc3NhZ2USDAoBZBgBIAEoBVIBZCpZCgpJbXBvcnRFbnVtEhsKF0lNUE9SVF9FTlVNX1VOU1BFQ0lGSUVEEAASDgoKSU1QT1JUX0ZPTxAHEg4KCklNUE9SVF9CQVIQCBIOCgpJTVBPUlRfQkFaEAlCHaoCGkdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zSoARCgYSBCQANgEKnw4KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtABIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3aGljaCBpcyBpbXBvcnRlZCBieSB1bml0dGVzdF9wcm90bzMucHJvdG8gdG8gdGVzdCBpbXBvcnRpbmcuCgoICgECEgMmACEKCAoBCBIDKAA3CgkKAgglEgMoADcKHwoCAwASAysAQhoUIFRlc3QgcHVibGljIGltcG9ydAoKCQoCCgASAysHDQoKCgIEABIELQAvAQoKCgMEAAESAy0IFQoLCgQEAAIAEgMuAg4KDAoFBAACAAUSAy4CBwoMCgUEAAIAARIDLggJCgwKBQQAAgADEgMuDA0KCgoCBQASBDEANgEKCgoDBQABEgMxBQ8KCwoEBQACABIDMgIeCgwKBQUAAgABEgMyAhkKDAoFBQACAAISAzIcHQoLCgQFAAIBEgMzAhEKDAoFBQACAQESAzMCDAoMCgUFAAIBAhIDMw8QCgsKBAUAAgISAzQCEQoMCgUFAAICARIDNAIMCgwKBQUAAgICEgM0DxAKCwoEBQACAxIDNQIRCgwKBQUAAgMBEgM1AgwKDAoFBQACAwISAzUPEFAAYgZwcm90bzMKhbwBCiNjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X3Byb3RvMy5wcm90bxIScHJvdG9idWZfdW5pdHRlc3QzGipjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydF9wcm90bzMucHJvdG8iqxYKDFRlc3RBbGxUeXBlcxIhCgxzaW5nbGVfaW50MzIYASABKAVSC3NpbmdsZUludDMyEiEKDHNpbmdsZV9pbnQ2NBgCIAEoA1ILc2luZ2xlSW50NjQSIwoNc2luZ2xlX3VpbnQzMhgDIAEoDVIMc2luZ2xlVWludDMyEiMKDXNpbmdsZV91aW50NjQYBCABKARSDHNpbmdsZVVpbnQ2NBIjCg1zaW5nbGVfc2ludDMyGAUgASgRUgxzaW5nbGVTaW50MzISIwoNc2luZ2xlX3NpbnQ2NBgGIAEoElIMc2luZ2xlU2ludDY0EiUKDnNpbmdsZV9maXhlZDMyGAcgASgHUg1zaW5nbGVGaXhlZDMyEiUKDnNpbmdsZV9maXhlZDY0GAggASgGUg1zaW5nbGVGaXhlZDY0EicKD3NpbmdsZV9zZml4ZWQzMhgJIAEoD1IOc2luZ2xlU2ZpeGVkMzISJwoPc2luZ2xlX3NmaXhlZDY0GAogASgQUg5zaW5nbGVTZml4ZWQ2NBIhCgxzaW5nbGVfZmxvYXQYCyABKAJSC3NpbmdsZUZsb2F0EiMKDXNpbmdsZV9kb3VibGUYDCABKAFSDHNpbmdsZURvdWJsZRIfCgtzaW5nbGVfYm9vbBgNIAEoCFIKc2luZ2xlQm9vbBIjCg1zaW5nbGVfc3RyaW5nGA4gASgJUgxzaW5nbGVTdHJpbmcSIQoMc2luZ2xlX2J5dGVzGA8gASgMUgtzaW5nbGVCeXRlcxJiChVzaW5nbGVfbmVzdGVkX21lc3NhZ2UYEiABKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSE3NpbmdsZU5lc3RlZE1lc3NhZ2USWAoWc2luZ2xlX2ZvcmVpZ25fbWVzc2FnZRgTIAEoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIUc2luZ2xlRm9yZWlnbk1lc3NhZ2USWwoVc2luZ2xlX2ltcG9ydF9tZXNzYWdlGBQgASgLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2VSE3NpbmdsZUltcG9ydE1lc3NhZ2USWQoSc2luZ2xlX25lc3RlZF9lbnVtGBUgASgOMisucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhBzaW5nbGVOZXN0ZWRFbnVtEk8KE3NpbmdsZV9mb3JlaWduX2VudW0YFiABKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SEXNpbmdsZUZvcmVpZ25FbnVtElIKEnNpbmdsZV9pbXBvcnRfZW51bRgXIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtUhBzaW5nbGVJbXBvcnRFbnVtEm4KHHNpbmdsZV9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyLS5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuUHVibGljSW1wb3J0TWVzc2FnZVIZc2luZ2xlUHVibGljSW1wb3J0TWVzc2FnZRIlCg5yZXBlYXRlZF9pbnQzMhgfIAMoBVINcmVwZWF0ZWRJbnQzMhIlCg5yZXBlYXRlZF9pbnQ2NBggIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg9yZXBlYXRlZF91aW50MzIYISADKA1SDnJlcGVhdGVkVWludDMyEicKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBFIOcmVwZWF0ZWRVaW50NjQSJwoPcmVwZWF0ZWRfc2ludDMyGCMgAygRUg5yZXBlYXRlZFNpbnQzMhInCg9yZXBlYXRlZF9zaW50NjQYJCADKBJSDnJlcGVhdGVkU2ludDY0EikKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAdSD3JlcGVhdGVkRml4ZWQzMhIpChByZXBlYXRlZF9maXhlZDY0GCYgAygGUg9yZXBlYXRlZEZpeGVkNjQSKwoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA9SEHJlcGVhdGVkU2ZpeGVkMzISKwoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBBSEHJlcGVhdGVkU2ZpeGVkNjQSJQoOcmVwZWF0ZWRfZmxvYXQYKSADKAJSDXJlcGVhdGVkRmxvYXQSJwoPcmVwZWF0ZWRfZG91YmxlGCogAygBUg5yZXBlYXRlZERvdWJsZRIjCg1yZXBlYXRlZF9ib29sGCsgAygIUgxyZXBlYXRlZEJvb2wSJwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJUg5yZXBlYXRlZFN0cmluZxIlCg5yZXBlYXRlZF9ieXRlcxgtIAMoDFINcmVwZWF0ZWRCeXRlcxJmChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlElwKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIWcmVwZWF0ZWRGb3JlaWduTWVzc2FnZRJfChdyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZRgyIAMoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNzYWdlUhVyZXBlYXRlZEltcG9ydE1lc3NhZ2USXQoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yKy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJTChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yHy5wcm90b2J1Zl91bml0dGVzdDMuRm9yZWlnbkVudW1SE3JlcGVhdGVkRm9yZWlnbkVudW0SVgoUcmVwZWF0ZWRfaW1wb3J0X2VudW0YNSADKA4yJC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bVIScmVwZWF0ZWRJbXBvcnRFbnVtEnIKHnJlcGVhdGVkX3B1YmxpY19pbXBvcnRfbWVzc2FnZRg2IAMoCzItLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5QdWJsaWNJbXBvcnRNZXNzYWdlUhtyZXBlYXRlZFB1YmxpY0ltcG9ydE1lc3NhZ2USIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEmIKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlSABSEm9uZW9mTmVzdGVkTWVzc2FnZRIjCgxvbmVvZl9zdHJpbmcYcSABKAlIAFILb25lb2ZTdHJpbmcSIQoLb25lb2ZfYnl0ZXMYciABKAxIAFIKb25lb2ZCeXRlcxofCg1OZXN0ZWRNZXNzYWdlEg4KAmJiGAEgASgFUgJiYiJWCgpOZXN0ZWRFbnVtEhsKF05FU1RFRF9FTlVNX1VOU1BFQ0lGSUVEEAASBwoDRk9PEAESBwoDQkFSEAISBwoDQkFaEAMSEAoDTkVHEP///////////wFCDQoLb25lb2ZfZmllbGQi3QEKEk5lc3RlZFRlc3RBbGxUeXBlcxI8CgVjaGlsZBgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0My5OZXN0ZWRUZXN0QWxsVHlwZXNSBWNoaWxkEjoKB3BheWxvYWQYAiABKAsyIC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzUgdwYXlsb2FkEk0KDnJlcGVhdGVkX2NoaWxkGAMgAygLMiYucHJvdG9idWZfdW5pdHRlc3QzLk5lc3RlZFRlc3RBbGxUeXBlc1INcmVwZWF0ZWRDaGlsZCJFChRUZXN0RGVwcmVjYXRlZEZpZWxkcxItChBkZXByZWNhdGVkX2ludDMyGAEgASgFQgIYAVIPZGVwcmVjYXRlZEludDMyIh4KDkZvcmVpZ25NZXNzYWdlEgwKAWMYASABKAVSAWMiMAoSVGVzdFJlc2VydmVkRmllbGRzSgQIAhADSgQIDxAQSgQICRAMUgNiYXJSA2JheiJqChFUZXN0Rm9yZWlnbk5lc3RlZBJVCg5mb3JlaWduX25lc3RlZBgBIAEoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVINZm9yZWlnbk5lc3RlZCI7ChhUZXN0UmVhbGx5TGFyZ2VUYWdOdW1iZXISDAoBYRgBIAEoBVIBYRIRCgJiYhj///9/IAEoBVICYmIiXAoUVGVzdFJlY3Vyc2l2ZU1lc3NhZ2USNgoBYRgBIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0UmVjdXJzaXZlTWVzc2FnZVIBYRIMCgFpGAIgASgFUgFpIlAKFFRlc3RNdXR1YWxSZWN1cnNpb25BEjgKAmJiGAEgASgLMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNdXR1YWxSZWN1cnNpb25CUgJiYiJ1ChRUZXN0TXV0dWFsUmVjdXJzaW9uQhI2CgFhGAEgASgLMigucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNdXR1YWxSZWN1cnNpb25BUgFhEiUKDm9wdGlvbmFsX2ludDMyGAIgASgFUg1vcHRpb25hbEludDMyIlQKElRlc3RFbnVtQWxsb3dBbGlhcxI+CgV2YWx1ZRgBIAEoDjIoLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0RW51bVdpdGhEdXBWYWx1ZVIFdmFsdWUi+wMKF1Rlc3RDYW1lbENhc2VGaWVsZE5hbWVzEiYKDlByaW1pdGl2ZUZpZWxkGAEgASgFUg5QcmltaXRpdmVGaWVsZBIgCgtTdHJpbmdGaWVsZBgCIAEoCVILU3RyaW5nRmllbGQSPQoJRW51bUZpZWxkGAMgASgOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtUglFbnVtRmllbGQSRgoMTWVzc2FnZUZpZWxkGAQgASgLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUgxNZXNzYWdlRmllbGQSNgoWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBgHIAMoBVIWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBIwChNSZXBlYXRlZFN0cmluZ0ZpZWxkGAggAygJUhNSZXBlYXRlZFN0cmluZ0ZpZWxkEk0KEVJlcGVhdGVkRW51bUZpZWxkGAkgAygOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtUhFSZXBlYXRlZEVudW1GaWVsZBJWChRSZXBlYXRlZE1lc3NhZ2VGaWVsZBgKIAMoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIUUmVwZWF0ZWRNZXNzYWdlRmllbGQi/wEKElRlc3RGaWVsZE9yZGVyaW5ncxIbCglteV9zdHJpbmcYCyABKAlSCG15U3RyaW5nEhUKBm15X2ludBgBIAEoA1IFbXlJbnQSGQoIbXlfZmxvYXQYZSABKAJSB215RmxvYXQSaQoVc2luZ2xlX25lc3RlZF9tZXNzYWdlGMgBIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0RmllbGRPcmRlcmluZ3MuTmVzdGVkTWVzc2FnZVITc2luZ2xlTmVzdGVkTWVzc2FnZRovCg1OZXN0ZWRNZXNzYWdlEg4KAm9vGAIgASgDUgJvbxIOCgJiYhgBIAEoBVICYmIiWAoRU3BhcnNlRW51bU1lc3NhZ2USQwoLc3BhcnNlX2VudW0YASABKA4yIi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdFNwYXJzZUVudW1SCnNwYXJzZUVudW0iHwoJT25lU3RyaW5nEhIKBGRhdGEYASABKAlSBGRhdGEiIAoKTW9yZVN0cmluZxISCgRkYXRhGAEgAygJUgRkYXRhIh4KCE9uZUJ5dGVzEhIKBGRhdGEYASABKAxSBGRhdGEiHwoJTW9yZUJ5dGVzEhIKBGRhdGEYASABKAxSBGRhdGEiIgoMSW50MzJNZXNzYWdlEhIKBGRhdGEYASABKAVSBGRhdGEiIwoNVWludDMyTWVzc2FnZRISCgRkYXRhGAEgASgNUgRkYXRhIiIKDEludDY0TWVzc2FnZRISCgRkYXRhGAEgASgDUgRkYXRhIiMKDVVpbnQ2NE1lc3NhZ2USEgoEZGF0YRgBIAEoBFIEZGF0YSIhCgtCb29sTWVzc2FnZRISCgRkYXRhGAEgASgIUgRkYXRhIpMBCglUZXN0T25lb2YSGQoHZm9vX2ludBgBIAEoBUgAUgZmb29JbnQSHwoKZm9vX3N0cmluZxgCIAEoCUgAUglmb29TdHJpbmcSQwoLZm9vX21lc3NhZ2UYAyABKAsyIC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFsbFR5cGVzSABSCmZvb01lc3NhZ2VCBQoDZm9vIu4ECg9UZXN0UGFja2VkVHlwZXMSJQoMcGFja2VkX2ludDMyGFogAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GFsgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhcIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GF0gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYXiADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhfIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYYSADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhiIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhkIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYZSADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYZiADKAhCAhABUgpwYWNrZWRCb29sEkQKC3BhY2tlZF9lbnVtGGcgAygOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtQgIQAVIKcGFja2VkRW51bSKoBQoRVGVzdFVucGFja2VkVHlwZXMSKQoOdW5wYWNrZWRfaW50MzIYWiADKAVCAhAAUg11bnBhY2tlZEludDMyEikKDnVucGFja2VkX2ludDY0GFsgAygDQgIQAFINdW5wYWNrZWRJbnQ2NBIrCg91bnBhY2tlZF91aW50MzIYXCADKA1CAhAAUg51bnBhY2tlZFVpbnQzMhIrCg91bnBhY2tlZF91aW50NjQYXSADKARCAhAAUg51bnBhY2tlZFVpbnQ2NBIrCg91bnBhY2tlZF9zaW50MzIYXiADKBFCAhAAUg51bnBhY2tlZFNpbnQzMhIrCg91bnBhY2tlZF9zaW50NjQYXyADKBJCAhAAUg51bnBhY2tlZFNpbnQ2NBItChB1bnBhY2tlZF9maXhlZDMyGGAgAygHQgIQAFIPdW5wYWNrZWRGaXhlZDMyEi0KEHVucGFja2VkX2ZpeGVkNjQYYSADKAZCAhAAUg91bnBhY2tlZEZpeGVkNjQSLwoRdW5wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhAAUhB1bnBhY2tlZFNmaXhlZDMyEi8KEXVucGFja2VkX3NmaXhlZDY0GGMgAygQQgIQAFIQdW5wYWNrZWRTZml4ZWQ2NBIpCg51bnBhY2tlZF9mbG9hdBhkIAMoAkICEABSDXVucGFja2VkRmxvYXQSKwoPdW5wYWNrZWRfZG91YmxlGGUgAygBQgIQAFIOdW5wYWNrZWREb3VibGUSJwoNdW5wYWNrZWRfYm9vbBhmIAMoCEICEABSDHVucGFja2VkQm9vbBJICg11bnBhY2tlZF9lbnVtGGcgAygOMh8ucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25FbnVtQgIQAFIMdW5wYWNrZWRFbnVtIp8CCiNUZXN0UmVwZWF0ZWRTY2FsYXJEaWZmZXJlbnRUYWdTaXplcxIpChByZXBlYXRlZF9maXhlZDMyGAwgAygHUg9yZXBlYXRlZEZpeGVkMzISJQoOcmVwZWF0ZWRfaW50MzIYDSADKAVSDXJlcGVhdGVkSW50MzISKgoQcmVwZWF0ZWRfZml4ZWQ2NBj+DyADKAZSD3JlcGVhdGVkRml4ZWQ2NBImCg5yZXBlYXRlZF9pbnQ2NBj/DyADKANSDXJlcGVhdGVkSW50NjQSJwoOcmVwZWF0ZWRfZmxvYXQY/v8PIAMoAlINcmVwZWF0ZWRGbG9hdBIpCg9yZXBlYXRlZF91aW50NjQY//8PIAMoBFIOcmVwZWF0ZWRVaW50NjQiKwobVGVzdENvbW1lbnRJbmplY3Rpb25NZXNzYWdlEgwKAWEYASABKAlSAWEiDAoKRm9vUmVxdWVzdCINCgtGb29SZXNwb25zZSISChBGb29DbGllbnRNZXNzYWdlIhIKEEZvb1NlcnZlck1lc3NhZ2UiDAoKQmFyUmVxdWVzdCINCgtCYXJSZXNwb25zZSISChBUZXN0RW1wdHlNZXNzYWdlIoIBCg5Db21tZW50TWVzc2FnZRISCgR0ZXh0GAEgASgJUgR0ZXh0GjcKFE5lc3RlZENvbW1lbnRNZXNzYWdlEh8KC25lc3RlZF90ZXh0GAEgASgJUgpuZXN0ZWRUZXh0IiMKEU5lc3RlZENvbW1lbnRFbnVtEg4KClpFUk9fVkFMVUUQACpZCgtGb3JlaWduRW51bRIXChNGT1JFSUdOX1VOU1BFQ0lGSUVEEAASDwoLRk9SRUlHTl9GT08QBBIPCgtGT1JFSUdOX0JBUhAFEg8KC0ZPUkVJR05fQkFaEAYqdQoUVGVzdEVudW1XaXRoRHVwVmFsdWUSKAokVEVTVF9FTlVNX1dJVEhfRFVQX1ZBTFVFX1VOU1BFQ0lGSUVEEAASCAoERk9PMRABEggKBEJBUjEQAhIHCgNCQVoQAxIICgRGT08yEAESCAoEQkFSMhACGgIQASqdAQoOVGVzdFNwYXJzZUVudW0SIAocVEVTVF9TUEFSU0VfRU5VTV9VTlNQRUNJRklFRBAAEgwKCFNQQVJTRV9BEHsSDgoIU1BBUlNFX0IQpucDEg8KCFNQQVJTRV9DELKxgAYSFQoIU1BBUlNFX0QQ8f//////////ARIVCghTUEFSU0VfRRC03vz///////8BEgwKCFNQQVJTRV9HEAIqHQoLQ29tbWVudEVudW0SDgoKWkVST19WQUxVRRAAMp0BCgtUZXN0U2VydmljZRJGCgNGb28SHi5wcm90b2J1Zl91bml0dGVzdDMuRm9vUmVxdWVzdBofLnByb3RvYnVmX3VuaXR0ZXN0My5Gb29SZXNwb25zZRJGCgNCYXISHi5wcm90b2J1Zl91bml0dGVzdDMuQmFyUmVxdWVzdBofLnByb3RvYnVmX3VuaXR0ZXN0My5CYXJSZXNwb25zZUIsQg1Vbml0dGVzdFByb3RvqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK2n8KBxIFJACWAwEK/w0KAQwSAyQAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMrABIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIEEgcHJvdG8gZmlsZSB3ZSB3aWxsIHVzZSBmb3IgdW5pdCB0ZXN0aW5nLgoKCAoBCBIDJgA3CgkKAgglEgMmADcKCAoBCBIDKgAuCmAKAggIEgMqAC4aVSBPbmx5IHByZXNlbnQgc28gd2UgY2FuIHRlc3QgdGhhdCB3ZSBjYW4gcmVhZCBpdCAoYXMgYW4gZXhhbXBsZQogb2YgYSBub24tQyMgb3B0aW9uKQoKCQoCAwASAywANAoICgECEgMuABsKXAoCBAASBTIAggEBGk8gVGhpcyBwcm90byBpbmNsdWRlcyBldmVyeSB0eXBlIG9mIGZpZWxkIGluIGJvdGggc2luZ3VsYXIgYW5kIHJlcGVhdGVkCiBmb3Jtcy4KCgoKAwQAARIDMggUCgwKBAQAAwASBDMCOAMKDAoFBAADAAESAzMKFwrjAQoGBAADAAIAEgM3BBEa0wEgVGhlIGZpZWxkIG5hbWUgImIiIGZhaWxzIHRvIGNvbXBpbGUgaW4gcHJvdG8xIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGgKIGEgbG9jYWwgdmFyaWFibGUgbmFtZWQgImIiIGluIG9uZSBvZiB0aGUgZ2VuZXJhdGVkIG1ldGhvZHMuICBEb2guCiBUaGlzIGZpbGUgbmVlZHMgdG8gY29tcGlsZSBpbiBwcm90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sAICMwoNCgUEGAIABBIEsAICCgoNCgUEGAIABRIEsAILEAoNCgUEGAIAARIEsAIRHQoNCgUEGAIAAxIEsAIgIgoNCgUEGAIACBIEsAIjMgoOCgYEGAIACAISBLACJDEKDAoEBBgCARIEsQICMwoNCgUEGAIBBBIEsQICCgoNCgUEGAIBBRIEsQILEAoNCgUEGAIBARIEsQIRHQoNCgUEGAIBAxIEsQIgIgoNCgUEGAIBCBIEsQIjMgoOCgYEGAIBCAISBLECJDEKDAoEBBgCAhIEsgICNQoNCgUEGAICBBIEsgICCgoNCgUEGAICBRIEsgILEQoNCgUEGAICARIEsgISHwoNCgUEGAICAxIEsgIiJAoNCgUEGAICCBIEsgIlNAoOCgYEGAICCAISBLICJjMKDAoEBBgCAxIEswICNQoNCgUEGAIDBBIEswICCgoNCgUEGAIDBRIEswILEQoNCgUEGAIDARIEswISHwoNCgUEGAIDAxIEswIiJAoNCgUEGAIDCBIEswIlNAoOCgYEGAIDCAISBLMCJjMKDAoEBBgCBBIEtAICNQoNCgUEGAIEBBIEtAICCgoNCgUEGAIEBRIEtAILEQoNCgUEGAIEARIEtAISHwoNCgUEGAIEAxIEtAIiJAoNCgUEGAIECBIEtAIlNAoOCgYEGAIECAISBLQCJjMKDAoEBBgCBRIEtQICNQoNCgUEGAIFBBIEtQICCgoNCgUEGAIFBRIEtQILEQoNCgUEGAIFARIEtQISHwoNCgUEGAIFAxIEtQIiJAoNCgUEGAIFCBIEtQIlNAoOCgYEGAIFCAISBLUCJjMKDAoEBBgCBhIEtgICNwoNCgUEGAIGBBIEtgICCgoNCgUEGAIGBRIEtgILEgoNCgUEGAIGARIEtgITIQoNCgUEGAIGAxIEtgIkJgoNCgUEGAIGCBIEtgInNgoOCgYEGAIGCAISBLYCKDUKDAoEBBgCBxIEtwICNwoNCgUEGAIHBBIEtwICCgoNCgUEGAIHBRIEtwILEgoNCgUEGAIHARIEtwITIQoNCgUEGAIHAxIEtwIkJgoNCgUEGAIHCBIEtwInNgoOCgYEGAIHCAISBLcCKDUKDAoEBBgCCBIEuAICOQoNCgUEGAIIBBIEuAICCgoNCgUEGAIIBRIEuAILEwoNCgUEGAIIARIEuAIUIwoNCgUEGAIIAxIEuAImKAoNCgUEGAIICBIEuAIpOAoOCgYEGAIICAISBLgCKjcKDAoEBBgCCRIEuQICOQoNCgUEGAIJBBIEuQICCgoNCgUEGAIJBRIEuQILEwoNCgUEGAIJARIEuQIUIwoNCgUEGAIJAxIEuQImKAoNCgUEGAIJCBIEuQIpOAoOCgYEGAIJCAISBLkCKjcKDAoEBBgCChIEugICNAoNCgUEGAIKBBIEugICCgoNCgUEGAIKBRIEugILEAoNCgUEGAIKARIEugIRHQoNCgUEGAIKAxIEugIgIwoNCgUEGAIKCBIEugIkMwoOCgYEGAIKCAISBLoCJTIKDAoEBBgCCxIEuwICNgoNCgUEGAILBBIEuwICCgoNCgUEGAILBRIEuwILEQoNCgUEGAILARIEuwISHwoNCgUEGAILAxIEuwIiJQoNCgUEGAILCBIEuwImNQoOCgYEGAILCAISBLsCJzQKDAoEBBgCDBIEvAICMgoNCgUEGAIMBBIEvAICCgoNCgUEGAIMBRIEvAILDwoNCgUEGAIMARIEvAIQGwoNCgUEGAIMAxIEvAIeIQoNCgUEGAIMCBIEvAIiMQoOCgYEGAIMCAISBLwCIzAKDAoEBBgCDRIEvQICOQoNCgUEGAINBBIEvQICCgoNCgUEGAINBhIEvQILFgoNCgUEGAINARIEvQIXIgoNCgUEGAINAxIEvQIlKAoNCgUEGAINCBIEvQIpOAoOCgYEGAINCAISBL0CKjcKjQEKAgQZEgbCAgDRAgEafyBBIG1lc3NhZ2Ugd2l0aCB0aGUgc2FtZSBmaWVsZHMgYXMgVGVzdFBhY2tlZFR5cGVzLCBidXQgd2l0aG91dCBwYWNraW5nLiBVc2VkCiB0byB0ZXN0IHBhY2tlZCA8LT4gdW5wYWNrZWQgd2lyZSBjb21wYXRpYmlsaXR5LgoKCwoDBBkBEgTCAggZCgwKBAQZAgASBMMCAjYKDQoFBBkCAAQSBMMCAgoKDQoFBBkCAAUSBMMCCxAKDQoFBBkCAAESBMMCER8KDQoFBBkCAAMSBMMCIiQKDQoFBBkCAAgSBMMCJTUKDgoGBBkCAAgCEgTDAiY0CgwKBAQZAgESBMQCAjYKDQoFBBkCAQQSBMQCAgoKDQoFBBkCAQUSBMQCCxAKDQoFBBkCAQESBMQCER8KDQoFBBkCAQMSBMQCIiQKDQoFBBkCAQgSBMQCJTUKDgoGBBkCAQgCEgTEAiY0CgwKBAQZAgISBMUCAjgKDQoFBBkCAgQSBMUCAgoKDQoFBBkCAgUSBMUCCxEKDQoFBBkCAgESBMUCEiEKDQoFBBkCAgMSBMUCJCYKDQoFBBkCAggSBMUCJzcKDgoGBBkCAggCEgTFAig2CgwKBAQZAgMSBMYCAjgKDQoFBBkCAwQSBMYCAgoKDQoFBBkCAwUSBMYCCxEKDQoFBBkCAwESBMYCEiEKDQoFBBkCAwMSBMYCJCYKDQoFBBkCAwgSBMYCJzcKDgoGBBkCAwgCEgTGAig2CgwKBAQZAgQSBMcCAjgKDQoFBBkCBAQSBMcCAgoKDQoFBBkCBAUSBMcCCxEKDQoFBBkCBAESBMcCEiEKDQoFBBkCBAMSBMcCJCYKDQoFBBkCBAgSBMcCJzcKDgoGBBkCBAgCEgTHAig2CgwKBAQZAgUSBMgCAjgKDQoFBBkCBQQSBMgCAgoKDQoFBBkCBQUSBMgCCxEKDQoFBBkCBQESBMgCEiEKDQoFBBkCBQMSBMgCJCYKDQoFBBkCBQgSBMgCJzcKDgoGBBkCBQgCEgTIAig2CgwKBAQZAgYSBMkCAjoKDQoFBBkCBgQSBMkCAgoKDQoFBBkCBgUSBMkCCxIKDQoFBBkCBgESBMkCEyMKDQoFBBkCBgMSBMkCJigKDQoFBBkCBggSBMkCKTkKDgoGBBkCBggCEgTJAio4CgwKBAQZAgcSBMoCAjoKDQoFBBkCBwQSBMoCAgoKDQoFBBkCBwUSBMoCCxIKDQoFBBkCBwESBMoCEyMKDQoFBBkCBwMSBMoCJigKDQoFBBkCBwgSBMoCKTkKDgoGBBkCBwgCEgTKAio4CgwKBAQZAggSBMsCAjwKDQoFBBkCCAQSBMsCAgoKDQoFBBkCCAUSBMsCCxMKDQoFBBkCCAESBMsCFCUKDQoFBBkCCAMSBMsCKCoKDQoFBBkCCAgSBMsCKzsKDgoGBBkCCAgCEgTLAiw6CgwKBAQZAgkSBMwCAjwKDQoFBBkCCQQSBMwCAgoKDQoFBBkCCQUSBMwCCxMKDQoFBBkCCQESBMwCFCUKDQoFBBkCCQMSBMwCKCoKDQoFBBkCCQgSBMwCKzsKDgoGBBkCCQgCEgTMAiw6CgwKBAQZAgoSBM0CAjcKDQoFBBkCCgQSBM0CAgoKDQoFBBkCCgUSBM0CCxAKDQoFBBkCCgESBM0CER8KDQoFBBkCCgMSBM0CIiUKDQoFBBkCCggSBM0CJjYKDgoGBBkCCggCEgTNAic1CgwKBAQZAgsSBM4CAjkKDQoFBBkCCwQSBM4CAgoKDQoFBBkCCwUSBM4CCxEKDQoFBBkCCwESBM4CEiEKDQoFBBkCCwMSBM4CJCcKDQoFBBkCCwgSBM4CKDgKDgoGBBkCCwgCEgTOAik3CgwKBAQZAgwSBM8CAjUKDQoFBBkCDAQSBM8CAgoKDQoFBBkCDAUSBM8CCw8KDQoFBBkCDAESBM8CEB0KDQoFBBkCDAMSBM8CICMKDQoFBBkCDAgSBM8CJDQKDgoGBBkCDAgCEgTPAiUzCgwKBAQZAg0SBNACAjwKDQoFBBkCDQQSBNACAgoKDQoFBBkCDQYSBNACCxYKDQoFBBkCDQESBNACFyQKDQoFBBkCDQMSBNACJyoKDQoFBBkCDQgSBNACKzsKDgoGBBkCDQgCEgTQAiw6CgwKAgQaEgbTAgDiAgEKCwoDBBoBEgTTAggrCs8BCgQEGgIAEgTXAgIpGsABIFBhcnNpbmcgcmVwZWF0ZWQgZml4ZWQgc2l6ZSB2YWx1ZXMgdXNlZCB0byBmYWlsLiBUaGlzIG1lc3NhZ2UgbmVlZHMgdG8gYmUKIHVzZWQgaW4gb3JkZXIgdG8gZ2V0IGEgdGFnIG9mIHRoZSByaWdodCBzaXplOyBhbGwgb2YgdGhlIHJlcGVhdGVkIGZpZWxkcwogaW4gVGVzdEFsbFR5cGVzIGRpZG4ndCB0cmlnZ2VyIHRoZSBjaGVjay4KCg0KBQQaAgAEEgTXAgIKCg0KBQQaAgAFEgTXAgsSCg0KBQQaAgABEgTXAhMjCg0KBQQaAgADEgTXAiYoCj8KBAQaAgESBNkCAiUaMSBDaGVjayBmb3IgYSB2YXJpbnQgdHlwZSwganVzdCBmb3IgZ29vZCBtZWFzdXJlLgoKDQoFBBoCAQQSBNkCAgoKDQoFBBoCAQUSBNkCCxAKDQoFBBoCAQESBNkCER8KDQoFBBoCAQMSBNkCIiQKKQoEBBoCAhIE3AICKxobIFRoZXNlIGhhdmUgdHdvLWJ5dGUgdGFncy4KCg0KBQQaAgIEEgTcAgIKCg0KBQQaAgIFEgTcAgsSCg0KBQQaAgIBEgTcAhMjCg0KBQQaAgIDEgTcAiYqCgwKBAQaAgMSBN0CAicKDQoFBBoCAwQSBN0CAgoKDQoFBBoCAwUSBN0CCxAKDQoFBBoCAwESBN0CER8KDQoFBBoCAwMSBN0CIiYKIAoEBBoCBBIE4AICKRoSIFRocmVlIGJ5dGUgdGFncy4KCg0KBQQaAgQEEgTgAgIKCg0KBQQaAgQFEgTgAgsQCg0KBQQaAgQBEgTgAhEfCg0KBQQaAgQDEgTgAiIoCgwKBAQaAgUSBOECAisKDQoFBBoCBQQSBOECAgoKDQoFBBoCBQUSBOECCxEKDQoFBBoCBQESBOECEiEKDQoFBBoCBQMSBOECJCoKDAoCBBsSBuQCAOcCAQoLCgMEGwESBOQCCCMKRQoEBBsCABIE5gICDxo3ICovIDwtIFRoaXMgc2hvdWxkIG5vdCBjbG9zZSB0aGUgZ2VuZXJhdGVkIGRvYyBjb21tZW50CgoNCgUEGwIABRIE5gICCAoNCgUEGwIAARIE5gIJCgoNCgUEGwIAAxIE5gINDgoqCgIEHBIE6gIAFRoeIFRlc3QgdGhhdCBSUEMgc2VydmljZXMgd29yay4KCgsKAwQcARIE6gIIEgoKCgIEHRIE6wIAFgoLCgMEHQESBOsCCBMKCgoCBB4SBO0CABsKCwoDBB4BEgTtAggYCgoKAgQfEgTuAgAbCgsKAwQfARIE7gIIGAomCgIGABIG8QIA9QIBGhggVGhpcyBpcyBhIHRlc3Qgc2VydmljZQoKCwoDBgABEgTxAggTCiUKBAYAAgASBPMCAiwaFyBUaGlzIGlzIGEgdGVzdCBtZXRob2QKCg0KBQYAAgABEgTzAgYJCg0KBQYAAgACEgTzAgoUCg0KBQYAAgADEgTzAh8qCgwKBAYAAgESBPQCAiwKDQoFBgACAQESBPQCBgkKDQoFBgACAQISBPQCChQKDQoFBgACAQMSBPQCHyoKCgoCBCASBPcCABUKCwoDBCABEgT3AggSCgoKAgQhEgT4AgAWCgsKAwQhARIE+AIIEwoKCgIEIhIE+gIAGwoLCgMEIgESBPoCCBgKdQoCBCMSBoEDAJADARobIFRoaXMgaXMgYSBsZWFkaW5nIGNvbW1lbnQKMiQgVGhpcyBpcyBsZWFkaW5nIGRldGFjaGVkIGNvbW1lbnQgMQoyJCBUaGlzIGlzIGxlYWRpbmcgZGV0YWNoZWQgY29tbWVudCAyCgoLCgMEIwESBIEDCBYKMAoEBCMDABIGgwMChgMDGiAgTGVhZGluZyBuZXN0ZWQgbWVzc2FnZSBjb21tZW50CgoNCgUEIwMAARIEgwMKHgo2CgYEIwMAAgASBIUDBBsaJiBMZWFkaW5nIG5lc3RlZCBtZXNzYWdlIGZpZWxkIGNvbW1lbnQKCg8KBwQjAwACAAUSBIUDBAoKDwoHBCMDAAIAARIEhQMLFgoPCgcEIwMAAgADEgSFAxkaCi0KBAQjBAASBokDAowDAxodIExlYWRpbmcgbmVzdGVkIGVudW0gY29tbWVudAoKDQoFBCMEAAESBIkDBxgKJAoGBCMEAAIAEgSLAwQTGhQgWmVybyB2YWx1ZSBjb21tZW50CgoPCgcEIwQAAgABEgSLAwQOCg8KBwQjBAACAAISBIsDERIKPwoEBCMCABIEjwMCEhoXIExlYWRpbmcgZmllbGQgY29tbWVudAoiGCBUcmFpbGluZyBmaWVsZCBjb21tZW50CgoNCgUEIwIABRIEjwMCCAoNCgUEIwIAARIEjwMJDQoNCgUEIwIAAxIEjwMQEQokCgIFAxIGkwMAlgMBGhYgTGVhZGluZyBlbnVtIGNvbW1lbnQKCgsKAwUDARIEkwMFEAoiCgQFAwIAEgSVAwIRGhQgWmVybyB2YWx1ZSBjb21tZW50CgoNCgUFAwIAARIElQMCDAoNCgUFAwIAAhIElQMPEGIGcHJvdG8zCuFYCidjc2hhcnAvcHJvdG9zL21hcF91bml0dGVzdF9wcm90bzMucHJvdG8SEnByb3RvYnVmX3VuaXR0ZXN0MxojY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9wcm90bzMucHJvdG8imRYKB1Rlc3RNYXASVgoPbWFwX2ludDMyX2ludDMyGAEgAygLMi4ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJJbnQzMkVudHJ5Ug1tYXBJbnQzMkludDMyElYKD21hcF9pbnQ2NF9pbnQ2NBgCIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJcChFtYXBfdWludDMyX3VpbnQzMhgDIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzISXAoRbWFwX3VpbnQ2NF91aW50NjQYBCADKAsyMC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBVaW50NjRVaW50NjRFbnRyeVIPbWFwVWludDY0VWludDY0ElwKEW1hcF9zaW50MzJfc2ludDMyGAUgAygLMjAucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJcChFtYXBfc2ludDY0X3NpbnQ2NBgGIAMoCzIwLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSYgoTbWFwX2ZpeGVkMzJfZml4ZWQzMhgHIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEZpeGVkMzJGaXhlZDMyRW50cnlSEW1hcEZpeGVkMzJGaXhlZDMyEmIKE21hcF9maXhlZDY0X2ZpeGVkNjQYCCADKAsyMi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJoChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYCSADKAsyNC5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISaAoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GAogAygLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5UhNtYXBTZml4ZWQ2NFNmaXhlZDY0ElYKD21hcF9pbnQzMl9mbG9hdBgLIAMoCzIuLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJZChBtYXBfaW50MzJfZG91YmxlGAwgAygLMi8ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSUAoNbWFwX2Jvb2xfYm9vbBgNIAMoCzIsLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0TWFwLk1hcEJvb2xCb29sRW50cnlSC21hcEJvb2xCb29sElwKEW1hcF9zdHJpbmdfc3RyaW5nGA4gAygLMjAucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RNYXAuTWFwU3RyaW5nU3RyaW5nRW50cnlSD21hcFN0cmluZ1N0cmluZxJWCg9tYXBfaW50MzJfYnl0ZXMYDyADKAsyLi5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkJ5dGVzRW50cnlSDW1hcEludDMyQnl0ZXMSUwoObWFwX2ludDMyX2VudW0YECADKAsyLS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkVudW1FbnRyeVIMbWFwSW50MzJFbnVtEnIKGW1hcF9pbnQzMl9mb3JlaWduX21lc3NhZ2UYESADKAsyNy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcC5NYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnlSFm1hcEludDMyRm9yZWlnbk1lc3NhZ2UaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaQgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkJ5dGVzRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAxSBXZhbHVlOgI4ARpcChFNYXBJbnQzMkVudW1FbnRyeRIQCgNrZXkYASABKAVSA2tleRIxCgV2YWx1ZRgCIAEoDjIbLnByb3RvYnVmX3VuaXR0ZXN0My5NYXBFbnVtUgV2YWx1ZToCOAEabQobTWFwSW50MzJGb3JlaWduTWVzc2FnZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjgKBXZhbHVlGAIgASgLMiIucHJvdG9idWZfdW5pdHRlc3QzLkZvcmVpZ25NZXNzYWdlUgV2YWx1ZToCOAEiSwoRVGVzdE1hcFN1Ym1lc3NhZ2USNgoIdGVzdF9tYXAYASABKAsyGy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1hcFIHdGVzdE1hcCLbAQoOVGVzdE1lc3NhZ2VNYXASYwoRbWFwX2ludDMyX21lc3NhZ2UYASADKAsyNy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdE1lc3NhZ2VNYXAuTWFwSW50MzJNZXNzYWdlRW50cnlSD21hcEludDMyTWVzc2FnZRpkChRNYXBJbnQzMk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAVSA2tleRI2CgV2YWx1ZRgCIAEoCzIgLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QWxsVHlwZXNSBXZhbHVlOgI4ASKJAgoPVGVzdFNhbWVUeXBlTWFwEkEKBG1hcDEYASADKAsyLS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdFNhbWVUeXBlTWFwLk1hcDFFbnRyeVIEbWFwMRJBCgRtYXAyGAIgAygLMi0ucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RTYW1lVHlwZU1hcC5NYXAyRW50cnlSBG1hcDIaNwoJTWFwMUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaNwoJTWFwMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEirRQKDFRlc3RBcmVuYU1hcBJbCg9tYXBfaW50MzJfaW50MzIYASADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJbCg9tYXBfaW50NjRfaW50NjQYAiADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDY0SW50NjRFbnRyeVINbWFwSW50NjRJbnQ2NBJhChFtYXBfdWludDMyX3VpbnQzMhgDIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwVWludDMyVWludDMyRW50cnlSD21hcFVpbnQzMlVpbnQzMhJhChFtYXBfdWludDY0X3VpbnQ2NBgEIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJhChFtYXBfc2ludDMyX3NpbnQzMhgFIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwU2ludDMyU2ludDMyRW50cnlSD21hcFNpbnQzMlNpbnQzMhJhChFtYXBfc2ludDY0X3NpbnQ2NBgGIAMoCzI1LnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwU2ludDY0U2ludDY0RW50cnlSD21hcFNpbnQ2NFNpbnQ2NBJnChNtYXBfZml4ZWQzMl9maXhlZDMyGAcgAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJnChNtYXBfZml4ZWQ2NF9maXhlZDY0GAggAygLMjcucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBGaXhlZDY0Rml4ZWQ2NEVudHJ5UhFtYXBGaXhlZDY0Rml4ZWQ2NBJtChVtYXBfc2ZpeGVkMzJfc2ZpeGVkMzIYCSADKAsyOS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeVITbWFwU2ZpeGVkMzJTZml4ZWQzMhJtChVtYXBfc2ZpeGVkNjRfc2ZpeGVkNjQYCiADKAsyOS5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJbCg9tYXBfaW50MzJfZmxvYXQYCyADKAsyMy5wcm90b2J1Zl91bml0dGVzdDMuVGVzdEFyZW5hTWFwLk1hcEludDMyRmxvYXRFbnRyeVINbWFwSW50MzJGbG9hdBJeChBtYXBfaW50MzJfZG91YmxlGAwgAygLMjQucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkRvdWJsZUVudHJ5Ug5tYXBJbnQzMkRvdWJsZRJVCg1tYXBfYm9vbF9ib29sGA0gAygLMjEucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJYCg5tYXBfaW50MzJfZW51bRgOIAMoCzIyLnByb3RvYnVmX3VuaXR0ZXN0My5UZXN0QXJlbmFNYXAuTWFwSW50MzJFbnVtRW50cnlSDG1hcEludDMyRW51bRJ3ChltYXBfaW50MzJfZm9yZWlnbl9tZXNzYWdlGA8gAygLMjwucHJvdG9idWZfdW5pdHRlc3QzLlRlc3RBcmVuYU1hcC5NYXBJbnQzMkZvcmVpZ25NZXNzYWdlRW50cnlSFm1hcEludDMyRm9yZWlnbk1lc3NhZ2UaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaXAoRTWFwSW50MzJFbnVtRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKA4yGy5wcm90b2J1Zl91bml0dGVzdDMuTWFwRW51bVIFdmFsdWU6AjgBGm0KG01hcEludDMyRm9yZWlnbk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAVSA2tleRI4CgV2YWx1ZRgCIAEoCzIiLnByb3RvYnVmX3VuaXR0ZXN0My5Gb3JlaWduTWVzc2FnZVIFdmFsdWU6AjgBIvgBCh9NZXNzYWdlQ29udGFpbmluZ0VudW1DYWxsZWRUeXBlElEKBHR5cGUYASADKAsyPS5wcm90b2J1Zl91bml0dGVzdDMuTWVzc2FnZUNvbnRhaW5pbmdFbnVtQ2FsbGVkVHlwZS5UeXBlRW50cnlSBHR5cGUabAoJVHlwZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EkkKBXZhbHVlGAIgASgLMjMucHJvdG9idWZfdW5pdHRlc3QzLk1lc3NhZ2VDb250YWluaW5nRW51bUNhbGxlZFR5cGVSBXZhbHVlOgI4ASIUCgRUeXBlEgwKCFRZUEVfRk9PEAAisQEKH01lc3NhZ2VDb250YWluaW5nTWFwQ2FsbGVkRW50cnkSVAoFZW50cnkYASADKAsyPi5wcm90b2J1Zl91bml0dGVzdDMuTWVzc2FnZUNvbnRhaW5pbmdNYXBDYWxsZWRFbnRyeS5FbnRyeUVudHJ5UgVlbnRyeRo4CgpFbnRyeUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEqPwoHTWFwRW51bRIQCgxNQVBfRU5VTV9GT08QABIQCgxNQVBfRU5VTV9CQVIQARIQCgxNQVBfRU5VTV9CQVoQAkIdqgIaR29vZ2xlLlByb3RvYnVmLlRlc3RQcm90b3NK4iQKBhIEJABzAQqbDwoBDBIDJAASGswCIFRoaXMgZmlsZSBpcyBtb3N0bHkgZXF1aXZhbGVudCB0byBtYXBfdW5pdHRlc3QucHJvdG8sIGJ1dCBpbXBvcnRzCiB1bml0dGVzdF9wcm90bzMucHJvdG8gaW5zdGVhZCBvZiB1bml0dGVzdC5wcm90bywgc28gdGhhdCBpdCBvbmx5CiB1c2VzIHByb3RvMyBtZXNzYWdlcy4gVGhpcyBtYWtlcyBpdCBzdWl0YWJsZSBmb3IgdGVzdGluZwogaW1wbGVtZW50YXRpb25zIHdoaWNoIG9ubHkgc3VwcG9ydCBwcm90bzMuCiBUaGUgVGVzdFJlcXVpcmVkTWVzc2FnZU1hcCBtZXNzYWdlIGhhcyBiZWVuIHJlbW92ZWQgYXMgdGhlcmUgYXJlIG5vCiByZXF1aXJlZCBmaWVsZHMgaW4gcHJvdG8zLgoywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS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DgoHBAUEAAIAARIDawQMCg4KBwQFBAACAAISA2sPEAoLCgQEBQIAEgNtAjcKDAoFBAUCAAYSA20CLQoMCgUEBQIAARIDbS4yCgwKBQQFAgADEgNtNTYKSgoCBAYSBHEAcwEaPiBQcmV2aW91c2x5LCBtZXNzYWdlIGNhbm5vdCBjb250YWluIG1hcCBmaWVsZCBjYWxsZWQgImVudHJ5Ii4KCgoKAwQGARIDcQgnCgsKBAQGAgASA3ICHgoMCgUEBgIABhIDcgITCgwKBQQGAgABEgNyFBkKDAoFBAYCAAMSA3IcHWIGcHJvdG8zCv4iChxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvEg9nb29nbGUucHJvdG9idWYimAEKBlN0cnVjdBI7CgZmaWVsZHMYASADKAsyIy5nb29nbGUucHJvdG9idWYuU3RydWN0LkZpZWxkc0VudHJ5UgZmaWVsZHMaUQoLRmllbGRzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSLAoFdmFsdWUYAiABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWVSBXZhbHVlOgI4ASKyAgoFVmFsdWUSOwoKbnVsbF92YWx1ZRgBIAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVIAFIJbnVsbFZhbHVlEiMKDG51bWJlcl92YWx1ZRgCIAEoAUgAUgtudW1iZXJWYWx1ZRIjCgxzdHJpbmdfdmFsdWUYAyABKAlIAFILc3RyaW5nVmFsdWUSHwoKYm9vbF92YWx1ZRgEIAEoCEgAUglib29sVmFsdWUSPAoMc3RydWN0X3ZhbHVlGAUgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdEgAUgtzdHJ1Y3RWYWx1ZRI7CgpsaXN0X3ZhbHVlGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZUgAUglsaXN0VmFsdWVCBgoEa2luZCI7CglMaXN0VmFsdWUSLgoGdmFsdWVzGAEgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgZ2YWx1ZXMqGwoJTnVsbFZhbHVlEg4KCk5VTExfVkFMVUUQAEJ/ChNjb20uZ29vZ2xlLnByb3RvYnVmQgtTdHJ1Y3RQcm90b1ABWi9nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9zdHJ1Y3RwYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0qZHQoGEgQeAF4BCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAfCgkKAggfEgMiAB8KCAoBCBIDIwBGCgkKAggLEgMjAEYKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQAsCgkKAggIEgMlACwKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEKCAoBCBIDKAA7CgkKAgglEgMoADsKswMKAgQAEgQyADUBGqYDIGBTdHJ1Y3RgIHJlcHJlc2VudHMgYSBzdHJ1Y3R1cmVkIGRhdGEgdmFsdWUsIGNvbnNpc3Rpbmcgb2YgZmllbGRzCiB3aGljaCBtYXAgdG8gZHluYW1pY2FsbHkgdHlwZWQgdmFsdWVzLiBJbiBzb21lIGxhbmd1YWdlcywgYFN0cnVjdGAKIG1pZ2h0IGJlIHN1cHBvcnRlZCBieSBhIG5hdGl2ZSByZXByZXNlbnRhdGlvbi4gRm9yIGV4YW1wbGUsIGluCiBzY3JpcHRpbmcgbGFuZ3VhZ2VzIGxpa2UgSlMgYSBzdHJ1Y3QgaXMgcmVwcmVzZW50ZWQgYXMgYW4KIG9iamVjdC4gVGhlIGRldGFpbHMgb2YgdGhhdCByZXByZXNlbnRhdGlvbiBhcmUgZGVzY3JpYmVkIHRvZ2V0aGVyCiB3aXRoIHRoZSBwcm90byBzdXBwb3J0IGZvciB0aGUgbGFuZ3VhZ2UuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBTdHJ1Y3RgIGlzIEpTT04gb2JqZWN0LgoKCgoDBAABEgMyCA4KOQoEBAACABIDNAIgGiwgVW5vcmRlcmVkIG1hcCBvZiBkeW5hbWljYWxseSB0eXBlZCB2YWx1ZXMuCgoMCgUEAAIABhIDNAIUCgwKBQQAAgABEgM0FRsKDAoFBAACAAMSAzQeHwrEAgoCBAESBD0ATQEatwIgYFZhbHVlYCByZXByZXNlbnRzIGEgZHluYW1pY2FsbHkgdHlwZWQgdmFsdWUgd2hpY2ggY2FuIGJlIGVpdGhlcgogbnVsbCwgYSBudW1iZXIsIGEgc3RyaW5nLCBhIGJvb2xlYW4sIGEgcmVjdXJzaXZlIHN0cnVjdCB2YWx1ZSwgb3IgYQogbGlzdCBvZiB2YWx1ZXMuIEEgcHJvZHVjZXIgb2YgdmFsdWUgaXMgZXhwZWN0ZWQgdG8gc2V0IG9uZSBvZiB0aGVzZQogdmFyaWFudHMuIEFic2VuY2Ugb2YgYW55IHZhcmlhbnQgaW5kaWNhdGVzIGFuIGVycm9yLgoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgVmFsdWVgIGlzIEpTT04gdmFsdWUuCgoKCgMEAQESAz0IDQoiCgQEAQgAEgQ/AkwDGhQgVGhlIGtpbmQgb2YgdmFsdWUuCgoMCgUEAQgAARIDPwgMCicKBAQBAgASA0EEHRoaIFJlcHJlc2VudHMgYSBudWxsIHZhbHVlLgoKDAoFBAECAAYSA0EEDQoMCgUEAQIAARIDQQ4YCgwKBQQBAgADEgNBGxwKKQoEBAECARIDQwQcGhwgUmVwcmVzZW50cyBhIGRvdWJsZSB2YWx1ZS4KCgwKBQQBAgEFEgNDBAoKDAoFBAECAQESA0MLFwoMCgUEAQIBAxIDQxobCikKBAQBAgISA0UEHBocIFJlcHJlc2VudHMgYSBzdHJpbmcgdmFsdWUuCgoMCgUEAQICBRIDRQQKCgwKBQQBAgIBEgNFCxcKDAoFBAECAgMSA0UaGwoqCgQEAQIDEgNHBBgaHSBSZXByZXNlbnRzIGEgYm9vbGVhbiB2YWx1ZS4KCgwKBQQBAgMFEgNHBAgKDAoFBAECAwESA0cJEwoMCgUEAQIDAxIDRxYXCi0KBAQBAgQSA0kEHBogIFJlcHJlc2VudHMgYSBzdHJ1Y3R1cmVkIHZhbHVlLgoKDAoFBAECBAYSA0kECgoMCgUEAQIEARIDSQsXCgwKBQQBAgQDEgNJGhsKLQoEBAECBRIDSwQdGiAgUmVwcmVzZW50cyBhIHJlcGVhdGVkIGBWYWx1ZWAuCgoMCgUEAQIFBhIDSwQNCgwKBQQBAgUBEgNLDhgKDAoFBAECBQMSA0sbHAqoAQoCBQASBFMAVgEamwEgYE51bGxWYWx1ZWAgaXMgYSBzaW5nbGV0b24gZW51bWVyYXRpb24gdG8gcmVwcmVzZW50IHRoZSBudWxsIHZhbHVlIGZvciB0aGUKIGBWYWx1ZWAgdHlwZSB1bmlvbi4KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYE51bGxWYWx1ZWAgaXMgSlNPTiBgbnVsbGAuCgoKCgMFAAESA1MFDgoaCgQFAAIAEgNVAhEaDSBOdWxsIHZhbHVlLgoKDAoFBQACAAESA1UCDAoMCgUFAAIAAhIDVQ8QCoIBCgIEAhIEWwBeARp2IGBMaXN0VmFsdWVgIGlzIGEgd3JhcHBlciBhcm91bmQgYSByZXBlYXRlZCBmaWVsZCBvZiB2YWx1ZXMuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBMaXN0VmFsdWVgIGlzIEpTT04gYXJyYXkuCgoKCgMEAgESA1sIEQo6CgQEAgIAEgNdAhwaLSBSZXBlYXRlZCBmaWVsZCBvZiBkeW5hbWljYWxseSB0eXBlZCB2YWx1ZXMuCgoMCgUEAgIABBIDXQIKCgwKBQQCAgAGEgNdCxAKDAoFBAICAAESA10RFwoMCgUEAgIAAxIDXRobYgZwcm90bzMK7VEKI2NzaGFycC9wcm90b3MvdW5pdHRlc3RfaXNzdWVzLnByb3RvEg91bml0dGVzdF9pc3N1ZXMaHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8iJwoISXNzdWUzMDcaGwoKTmVzdGVkT25jZRoNCgtOZXN0ZWRUd2ljZSLNAQoTTmVnYXRpdmVFbnVtTWVzc2FnZRIzCgV2YWx1ZRgBIAEoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1SBXZhbHVlEjkKBnZhbHVlcxgCIAMoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1CAhAAUgZ2YWx1ZXMSRgoNcGFja2VkX3ZhbHVlcxgDIAMoDjIdLnVuaXR0ZXN0X2lzc3Vlcy5OZWdhdGl2ZUVudW1CAhABUgxwYWNrZWRWYWx1ZXMiFQoPRGVwcmVjYXRlZENoaWxkOgIYASKLAwoXRGVwcmVjYXRlZEZpZWxkc01lc3NhZ2USKgoOUHJpbWl0aXZlVmFsdWUYASABKAVCAhgBUg5QcmltaXRpdmVWYWx1ZRIqCg5QcmltaXRpdmVBcnJheRgCIAMoBUICGAFSDlByaW1pdGl2ZUFycmF5EkgKDE1lc3NhZ2VWYWx1ZRgDIAEoCzIgLnVuaXR0ZXN0X2lzc3Vlcy5EZXByZWNhdGVkQ2hpbGRCAhgBUgxNZXNzYWdlVmFsdWUSSAoMTWVzc2FnZUFycmF5GAQgAygLMiAudW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRDaGlsZEICGAFSDE1lc3NhZ2VBcnJheRJBCglFbnVtVmFsdWUYBSABKA4yHy51bml0dGVzdF9pc3N1ZXMuRGVwcmVjYXRlZEVudW1CAhgBUglFbnVtVmFsdWUSQQoJRW51bUFycmF5GAYgAygOMh8udW5pdHRlc3RfaXNzdWVzLkRlcHJlY2F0ZWRFbnVtQgIYAVIJRW51bUFycmF5Ih8KCUl0ZW1GaWVsZBISCgRpdGVtGAEgASgFUgRpdGVtIlcKDVJlc2VydmVkTmFtZXMSFAoFdHlwZXMYASABKAVSBXR5cGVzEh4KCmRlc2NyaXB0b3IYAiABKAVSCmRlc2NyaXB0b3IaEAoOU29tZU5lc3RlZFR5cGUi3wEKFVRlc3RKc29uRmllbGRPcmRlcmluZxIfCgtwbGFpbl9pbnQzMhgEIAEoBVIKcGxhaW5JbnQzMhIdCglvMV9zdHJpbmcYAiABKAlIAFIIbzFTdHJpbmcSGwoIbzFfaW50MzIYBSABKAVIAFIHbzFJbnQzMhIhCgxwbGFpbl9zdHJpbmcYASABKAlSC3BsYWluU3RyaW5nEhsKCG8yX2ludDMyGAYgASgFSAFSB28ySW50MzISHQoJbzJfc3RyaW5nGAMgASgJSAFSCG8yU3RyaW5nQgQKAm8xQgQKAm8yIlEKDFRlc3RKc29uTmFtZRISCgRuYW1lGAEgASgJUgRuYW1lEhkKC2Rlc2NyaXB0aW9uGAIgASgJUgRkZXNjEhIKBGd1aWQYAyABKAlSBGV4aWQikwEKDE9uZW9mTWVyZ2luZxIUCgR0ZXh0GAEgASgJSABSBHRleHQSPgoGbmVzdGVkGAIgASgLMiQudW5pdHRlc3RfaXNzdWVzLk9uZW9mTWVyZ2luZy5OZXN0ZWRIAFIGbmVzdGVkGiQKBk5lc3RlZBIMCgF4GAEgASgFUgF4EgwKAXkYAiABKAVSAXlCBwoFdmFsdWUigwEKFk51bGxWYWx1ZU91dHNpZGVTdHJ1Y3QSIwoMc3RyaW5nX3ZhbHVlGAEgASgJSABSC3N0cmluZ1ZhbHVlEjsKCm51bGxfdmFsdWUYAiABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSABSCW51bGxWYWx1ZUIHCgV2YWx1ZSJQChNOdWxsVmFsdWVOb3RJbk9uZW9mEjkKCm51bGxfdmFsdWUYAiABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlUgludWxsVmFsdWUifQoXTWl4ZWRSZWd1bGFyQW5kT3B0aW9uYWwSIwoNcmVndWxhcl9maWVsZBgBIAEoCVIMcmVndWxhckZpZWxkEioKDm9wdGlvbmFsX2ZpZWxkGAIgASgJSABSDW9wdGlvbmFsRmllbGSIAQFCEQoPX29wdGlvbmFsX2ZpZWxkIkIKEk9uZW9mV2l0aE5vbmVGaWVsZBIOCgF4GAEgASgJSABSAXgSFAoEbm9uZRgCIAEoCUgAUgRub25lQgYKBHRlc3QiOwoRT25lb2ZXaXRoTm9uZU5hbWUSDgoBeBgBIAEoCUgAUgF4Eg4KAXkYAiABKAlIAFIBeUIGCgRub25lIqIDChlEaXNhbWJpZ3VhdGVDb21tb25NZW1iZXJzEj4KG2Rpc2FtYmlndWF0ZV9jb21tb25fbWVtYmVycxgBIAEoBVIZZGlzYW1iaWd1YXRlQ29tbW9uTWVtYmVycxIUCgV0eXBlcxgCIAEoBVIFdHlwZXMSHgoKZGVzY3JpcHRvchgDIAEoBVIKZGVzY3JpcHRvchIWCgZlcXVhbHMYBCABKAVSBmVxdWFscxIbCgl0b19zdHJpbmcYBSABKAVSCHRvU3RyaW5nEiIKDWdldF9oYXNoX2NvZGUYBiABKAVSC2dldEhhc2hDb2RlEhkKCHdyaXRlX3RvGAcgASgFUgd3cml0ZVRvEhQKBWNsb25lGAggASgFUgVjbG9uZRIlCg5jYWxjdWxhdGVfc2l6ZRgJIAEoBVINY2FsY3VsYXRlU2l6ZRIdCgptZXJnZV9mcm9tGAogASgFUgltZXJnZUZyb20SJwoPb25fY29uc3RydWN0aW9uGAsgASgFUg5vbkNvbnN0cnVjdGlvbhIWCgZwYXJzZXIYDCABKAVSBnBhcnNlciI9ChFJc3N1ZTExOTg3TWVzc2FnZRIMCgFhGAEgASgFUgFiEgwKAWIYAiABKAVSAWESDAoBYxgDIAEoBVIBZCpVCgxOZWdhdGl2ZUVudW0SFgoSTkVHQVRJVkVfRU5VTV9aRVJPEAASFgoJRml2ZUJlbG93EPv//////////wESFQoITWludXNPbmUQ////////////ASo2Cg5EZXByZWNhdGVkRW51bRIXCg9ERVBSRUNBVEVEX1pFUk8QABoCCAESBwoDb25lEAEaAhgBQh2qAhpVbml0VGVzdC5Jc3N1ZXMuVGVzdFByb3Rvc0rBPgoHEgUeAOEBAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKjgIKAQISAyUAGBpmIElzc3VlOiBOb24tIkdvb2dsZS5Qcm90b2J1ZmZlcnMiIG5hbWVzcGFjZSB3aWxsIGVuc3VyZSB0aGF0IHByb3RvYnVmZmVyCiBsaWJyYXJ5IHR5cGVzIGFyZSBxdWFsaWZpZWQKMpsBIFRoZXNlIHByb3RvIGRlc2NyaXB0b3JzIGhhdmUgYXQgb25lIHRpbWUgYmVlbiByZXBvcnRlZCBhcyBhbiBpc3N1ZSBvciBkZWZlY3QuCiBUaGV5IGFyZSBrZXB0IGhlcmUgdG8gcmVwbGljYXRlIHRoZSBpc3N1ZSwgYW5kIGNvbnRpbnVlIHRvIHZlcmlmeSB0aGUgZml4LgoKCQoCAwASAycAJgoICgEIEgMpADcKCQoCCCUSAykANwp2CgIEABIELQAxARpqIElzc3VlIDMwNzogd2hlbiBnZW5lcmF0aW5nIGRvdWJseS1uZXN0ZWQgdHlwZXMsIGFueSByZWZlcmVuY2VzCiBzaG91bGQgYmUgb2YgdGhlIGZvcm0gQS5UeXBlcy5CLlR5cGVzLkMuCgoKCgMEAAESAy0IEAoMCgQEAAMAEgQuAjADCgwKBQQAAwABEgMuChQKDQoGBAADAAMAEgMvBBoKDgoHBAADAAMAARIDLwwXCrAECgIFABIETABQATKZASBPbGQgaXNzdWUgMTM6CiBodHRwOi8vY29kZS5nb29nbGUuY29tL3AvcHJvdG9idWYtY3NoYXJwLXBvcnQvaXNzdWVzL2RldGFpbD9pZD0xMyBOZXcgaXNzdWUKIDMwOTogaHR0cHM6Ly9naXRodWIuY29tL3Byb3RvY29sYnVmZmVycy9wcm90b2J1Zi9pc3N1ZXMvMzA5CjIrIG1lc3NhZ2UgQSB7CiAgICBvcHRpb25hbCBpbnQzMiBfQSA9IDE7CiB9CjIrIG1lc3NhZ2UgQiB7CiAgICBvcHRpb25hbCBpbnQzMiBCXyA9IDE7CiB9CjIuIG1lc3NhZ2UgQUIgewogICAgIG9wdGlvbmFsIGludDMyIGFfYiA9IDE7CiB9CjLaASBTaW1pbGFyIGlzc3VlIHdpdGggbnVtZXJpYyBuYW1lcwogSmF2YSBjb2RlIGZhaWxlZCB0b28sIHNvIHByb2JhYmx5IGJlc3QgZm9yIHRoaXMgdG8gYmUgYSByZXN0cmljdGlvbi4KIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcHJvdG9jb2xidWZmZXJzL3Byb3RvYnVmL2lzc3Vlcy8zMDgKIG1lc3NhZ2UgTnVtYmVyRmllbGQgewogICAgb3B0aW9uYWwgaW50MzIgXzAxID0gMTsKIH0KMiEgaXNzdWUgMTkgLSBuZWdhdGl2ZSBlbnVtIHZhbHVlcwoKCgoDBQABEgNMBREKCwoEBQACABIDTQIZCgwK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b3RvYnVmLkZpbGVEZXNjcmlwdG9yUHJvdG9SBGZpbGUi/gQKE0ZpbGVEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgdwYWNrYWdlGAIgASgJUgdwYWNrYWdlEh4KCmRlcGVuZGVuY3kYAyADKAlSCmRlcGVuZGVuY3kSKwoRcHVibGljX2RlcGVuZGVuY3kYCiADKAVSEHB1YmxpY0RlcGVuZGVuY3kSJwoPd2Vha19kZXBlbmRlbmN5GAsgAygFUg53ZWFrRGVwZW5kZW5jeRJDCgxtZXNzYWdlX3R5cGUYBCADKAsyIC5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvUgttZXNzYWdlVHlwZRJBCgllbnVtX3R5cGUYBSADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSQQoHc2VydmljZRgGIAMoCzInLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlRGVzY3JpcHRvclByb3RvUgdzZXJ2aWNlEkMKCWV4dGVuc2lvbhgHIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEjYKB29wdGlvbnMYCCABKAsyHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnNSB29wdGlvbnMSSQoQc291cmNlX2NvZGVfaW5mbxgJIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mb1IOc291cmNlQ29kZUluZm8SFgoGc3ludGF4GAwgASgJUgZzeW50YXgSGAoHZWRpdGlvbhgNIAEoCVIHZWRpdGlvbiK5BgoPRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSOwoFZmllbGQYAiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SBWZpZWxkEkMKCWV4dGVuc2lvbhgGIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEkEKC25lc3RlZF90eXBlGAMgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1IKbmVzdGVkVHlwZRJBCgllbnVtX3R5cGUYBCADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSWAoPZXh0ZW5zaW9uX3JhbmdlGAUgAygLMi8uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5FeHRlbnNpb25SYW5nZVIOZXh0ZW5zaW9uUmFuZ2USRAoKb25lb2ZfZGVjbBgIIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5PbmVvZkRlc2NyaXB0b3JQcm90b1IJb25lb2ZEZWNsEjkKB29wdGlvbnMYByABKAsyHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnNSB29wdGlvbnMSVQoOcmVzZXJ2ZWRfcmFuZ2UYCSADKAsyLi5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgKIAMoCVIMcmVzZXJ2ZWROYW1lGnoKDkV4dGVuc2lvblJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZBJACgdvcHRpb25zGAMgASgLMiYuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9uc1IHb3B0aW9ucxo3Cg1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCKtBAoVRXh0ZW5zaW9uUmFuZ2VPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uElkKC2RlY2xhcmF0aW9uGAIgAygLMjIuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9ucy5EZWNsYXJhdGlvbkIDiAECUgtkZWNsYXJhdGlvbhJoCgx2ZXJpZmljYXRpb24YAyABKA4yOC5nb29nbGUucHJvdG9idWYuRXh0ZW5zaW9uUmFuZ2VPcHRpb25zLlZlcmlmaWNhdGlvblN0YXRlOgpVTlZFUklGSUVEUgx2ZXJpZmljYXRpb24aswEKC0RlY2xhcmF0aW9uEhYKBm51bWJlchgBIAEoBVIGbnVtYmVyEhsKCWZ1bGxfbmFtZRgCIAEoCVIIZnVsbE5hbWUSEgoEdHlwZRgDIAEoCVIEdHlwZRIjCgtpc19yZXBlYXRlZBgEIAEoCEICGAFSCmlzUmVwZWF0ZWQSGgoIcmVzZXJ2ZWQYBSABKAhSCHJlc2VydmVkEhoKCHJlcGVhdGVkGAYgASgIUghyZXBlYXRlZCI0ChFWZXJpZmljYXRpb25TdGF0ZRIPCgtERUNMQVJBVElPThAAEg4KClVOVkVSSUZJRUQQASoJCOgHEICAgIACIsEGChRGaWVsZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhYKBm51bWJlchgDIAEoBVIGbnVtYmVyEkEKBWxhYmVsGAQgASgOMisuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLkxhYmVsUgVsYWJlbBI+CgR0eXBlGAUgASgOMiouZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLlR5cGVSBHR5cGUSGwoJdHlwZV9uYW1lGAYgASgJUgh0eXBlTmFtZRIaCghleHRlbmRlZRgCIAEoCVIIZXh0ZW5kZWUSIwoNZGVmYXVsdF92YWx1ZRgHIAEoCVIMZGVmYXVsdFZhbHVlEh8KC29uZW9mX2luZGV4GAkgASgFUgpvbmVvZkluZGV4EhsKCWpzb25fbmFtZRgKIAEoCVIIanNvbk5hbWUSNwoHb3B0aW9ucxgIIAEoCzIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnNSB29wdGlvbnMSJwoPcHJvdG8zX29wdGlvbmFsGBEgASgIUg5wcm90bzNPcHRpb25hbCK2AgoEVHlwZRIPCgtUWVBFX0RPVUJMRRABEg4KClRZUEVfRkxPQVQQAhIOCgpUWVBFX0lOVDY0EAMSDwoLVFlQRV9VSU5UNjQQBBIOCgpUWVBFX0lOVDMyEAUSEAoMVFlQRV9GSVhFRDY0EAYSEAoMVFlQRV9GSVhFRDMyEAcSDQoJVFlQRV9CT09MEAgSDwoLVFlQRV9TVFJJTkcQCRIOCgpUWVBFX0dST1VQEAoSEAoMVFlQRV9NRVNTQUdFEAsSDgoKVFlQRV9CWVRFUxAMEg8KC1RZUEVfVUlOVDMyEA0SDQoJVFlQRV9FTlVNEA4SEQoNVFlQRV9TRklYRUQzMhAPEhEKDVRZUEVfU0ZJWEVENjQQEBIPCgtUWVBFX1NJTlQzMhAREg8KC1RZUEVfU0lOVDY0EBIiQwoFTGFiZWwSEgoOTEFCRUxfT1BUSU9OQUwQARISCg5MQUJFTF9SRVFVSVJFRBACEhIKDkxBQkVMX1JFUEVBVEVEEAMiYwoUT25lb2ZEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRI3CgdvcHRpb25zGAIgASgLMh0uZ29vZ2xlLnByb3RvYnVmLk9uZW9mT3B0aW9uc1IHb3B0aW9ucyLjAgoTRW51bURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEj8KBXZhbHVlGAIgAygLMikuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZURlc2NyaXB0b3JQcm90b1IFdmFsdWUSNgoHb3B0aW9ucxgDIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9uc1IHb3B0aW9ucxJdCg5yZXNlcnZlZF9yYW5nZRgEIAMoCzI2Lmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvLkVudW1SZXNlcnZlZFJhbmdlUg1yZXNlcnZlZFJhbmdlEiMKDXJlc2VydmVkX25hbWUYBSADKAlSDHJlc2VydmVkTmFtZRo7ChFFbnVtUmVzZXJ2ZWRSYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQigwEKGEVudW1WYWx1ZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhYKBm51bWJlchgCIAEoBVIGbnVtYmVyEjsKB29wdGlvbnMYAyABKAsyIS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlT3B0aW9uc1IHb3B0aW9ucyKnAQoWU2VydmljZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEj4KBm1ldGhvZBgCIAMoCzImLmdvb2dsZS5wcm90b2J1Zi5NZXRob2REZXNjcmlwdG9yUHJvdG9SBm1ldGhvZBI5CgdvcHRpb25zGAMgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zUgdvcHRpb25zIokCChVNZXRob2REZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIdCgppbnB1dF90eXBlGAIgASgJUglpbnB1dFR5cGUSHwoLb3V0cHV0X3R5cGUYAyABKAlSCm91dHB1dFR5cGUSOAoHb3B0aW9ucxgEIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zUgdvcHRpb25zEjAKEGNsaWVudF9zdHJlYW1pbmcYBSABKAg6BWZhbHNlUg9jbGllbnRTdHJlYW1pbmcSMAoQc2VydmVyX3N0cmVhbWluZxgGIAEoCDoFZmFsc2VSD3NlcnZlclN0cmVhbWluZyKRCQoLRmlsZU9wdGlvbnMSIQoMamF2YV9wYWNrYWdlGAEgASgJUgtqYXZhUGFja2FnZRIwChRqYXZhX291dGVyX2NsYXNzbmFtZRgIIAEoCVISamF2YU91dGVyQ2xhc3NuYW1lEjUKE2phdmFfbXVsdGlwbGVfZmlsZXMYCiABKAg6BWZhbHNlUhFqYXZhTXVsdGlwbGVGaWxlcxJECh1qYXZhX2dlbmVyYXRlX2VxdWFsc19hbmRfaGFzaBgUIAEoCEICGAFSGWphdmFHZW5lcmF0ZUVxdWFsc0FuZEhhc2gSOgoWamF2YV9zdHJpbmdfY2hlY2tfdXRmOBgbIAEoCDoFZmFsc2VSE2phdmFTdHJpbmdDaGVja1V0ZjgSUwoMb3B0aW1pemVfZm9yGAkgASgOMikuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zLk9wdGltaXplTW9kZToFU1BFRURSC29wdGltaXplRm9yEh0KCmdvX3BhY2thZ2UYCyABKAlSCWdvUGFja2FnZRI1ChNjY19nZW5lcmljX3NlcnZpY2VzGBAgASgIOgVmYWxzZVIRY2NHZW5lcmljU2VydmljZXMSOQoVamF2YV9nZW5lcmljX3NlcnZpY2VzGBEgASgIOgVmYWxzZVITamF2YUdlbmVyaWNTZXJ2aWNlcxI1ChNweV9nZW5lcmljX3NlcnZpY2VzGBIgASgIOgVmYWxzZVIRcHlHZW5lcmljU2VydmljZXMSNwoUcGhwX2dlbmVyaWNfc2VydmljZXMYKiABKAg6BWZhbHNlUhJwaHBHZW5lcmljU2VydmljZXMSJQoKZGVwcmVjYXRlZBgXIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSLgoQY2NfZW5hYmxlX2FyZW5hcxgfIAEoCDoEdHJ1ZVIOY2NFbmFibGVBcmVuYXMSKgoRb2JqY19jbGFzc19wcmVmaXgYJCABKAlSD29iamNDbGFzc1ByZWZpeBIpChBjc2hhcnBfbmFtZXNwYWNlGCUgASgJUg9jc2hhcnBOYW1lc3BhY2USIQoMc3dpZnRfcHJlZml4GCcgASgJUgtzd2lmdFByZWZpeBIoChBwaHBfY2xhc3NfcHJlZml4GCggASgJUg5waHBDbGFzc1ByZWZpeBIjCg1waHBfbmFtZXNwYWNlGCkgASgJUgxwaHBOYW1lc3BhY2USNAoWcGhwX21ldGFkYXRhX25hbWVzcGFjZRgsIAEoCVIUcGhwTWV0YWRhdGFOYW1lc3BhY2USIQoMcnVieV9wYWNrYWdlGC0gASgJUgtydWJ5UGFja2FnZRJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiI6CgxPcHRpbWl6ZU1vZGUSCQoFU1BFRUQQARINCglDT0RFX1NJWkUQAhIQCgxMSVRFX1JVTlRJTUUQAyoJCOgHEICAgIACSgQIJhAnIrsDCg5NZXNzYWdlT3B0aW9ucxI8ChdtZXNzYWdlX3NldF93aXJlX2Zvcm1hdBgBIAEoCDoFZmFsc2VSFG1lc3NhZ2VTZXRXaXJlRm9ybWF0EkwKH25vX3N0YW5kYXJkX2Rlc2NyaXB0b3JfYWNjZXNzb3IYAiABKAg6BWZhbHNlUhxub1N0YW5kYXJkRGVzY3JpcHRvckFjY2Vzc29yEiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhsKCW1hcF9lbnRyeRgHIAEoCFIIbWFwRW50cnkSVgomZGVwcmVjYXRlZF9sZWdhY3lfanNvbl9maWVsZF9jb25mbGljdHMYCyABKAhCAhgBUiJkZXByZWNhdGVkTGVnYWN5SnNvbkZpZWxkQ29uZmxpY3RzElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgEEAVKBAgFEAZKBAgGEAdKBAgIEAlKBAgJEAoihQkKDEZpZWxkT3B0aW9ucxJBCgVjdHlwZRgBIAEoDjIjLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuQ1R5cGU6BlNUUklOR1IFY3R5cGUSFgoGcGFja2VkGAIgASgIUgZwYWNrZWQSRwoGanN0eXBlGAYgASgOMiQuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5KU1R5cGU6CUpTX05PUk1BTFIGanN0eXBlEhkKBGxhenkYBSABKAg6BWZhbHNlUgRsYXp5Ei4KD3VudmVyaWZpZWRfbGF6eRgPIAEoCDoFZmFsc2VSDnVudmVyaWZpZWRMYXp5EiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhkKBHdlYWsYCiABKAg6BWZhbHNlUgR3ZWFrEigKDGRlYnVnX3JlZGFjdBgQIAEoCDoFZmFsc2VSC2RlYnVnUmVkYWN0EksKCXJldGVudGlvbhgRIAEoDjItLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuT3B0aW9uUmV0ZW50aW9uUglyZXRlbnRpb24SSgoGdGFyZ2V0GBIgASgOMi4uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5PcHRpb25UYXJnZXRUeXBlQgIYAVIGdGFyZ2V0EkgKB3RhcmdldHMYEyADKA4yLi5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLk9wdGlvblRhcmdldFR5cGVSB3RhcmdldHMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iLwoFQ1R5cGUSCgoGU1RSSU5HEAASCAoEQ09SRBABEhAKDFNUUklOR19QSUVDRRACIjUKBkpTVHlwZRINCglKU19OT1JNQUwQABINCglKU19TVFJJTkcQARINCglKU19OVU1CRVIQAiJVCg9PcHRpb25SZXRlbnRpb24SFQoRUkVURU5USU9OX1VOS05PV04QABIVChFSRVRFTlRJT05fUlVOVElNRRABEhQKEFJFVEVOVElPTl9TT1VSQ0UQAiKMAgoQT3B0aW9uVGFyZ2V0VHlwZRIXChNUQVJHRVRfVFlQRV9VTktOT1dOEAASFAoQVEFSR0VUX1RZUEVfRklMRRABEh8KG1RBUkdFVF9UWVBFX0VYVEVOU0lPTl9SQU5HRRACEhcKE1RBUkdFVF9UWVBFX01FU1NBR0UQAxIVChFUQVJHRVRfVFlQRV9GSUVMRBAEEhUKEVRBUkdFVF9UWVBFX09ORU9GEAUSFAoQVEFSR0VUX1RZUEVfRU5VTRAGEhoKFlRBUkdFVF9UWVBFX0VOVU1fRU5UUlkQBxIXChNUQVJHRVRfVFlQRV9TRVJWSUNFEAgSFgoSVEFSR0VUX1RZUEVfTUVUSE9EEAkqCQjoBxCAgICAAkoECAQQBSJzCgxPbmVvZk9wdGlvbnMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKYAgoLRW51bU9wdGlvbnMSHwoLYWxsb3dfYWxpYXMYAiABKAhSCmFsbG93QWxpYXMSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSVgomZGVwcmVjYXRlZF9sZWdhY3lfanNvbl9maWVsZF9jb25mbGljdHMYBiABKAhCAhgBUiJkZXByZWNhdGVkTGVnYWN5SnNvbkZpZWxkQ29uZmxpY3RzElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgFEAYingEKEEVudW1WYWx1ZU9wdGlvbnMSJQoKZGVwcmVjYXRlZBgBIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKcAQoOU2VydmljZU9wdGlvbnMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLgAgoNTWV0aG9kT3B0aW9ucxIlCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJxChFpZGVtcG90ZW5jeV9sZXZlbBgiIAEoDjIvLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zLklkZW1wb3RlbmN5TGV2ZWw6E0lERU1QT1RFTkNZX1VOS05PV05SEGlkZW1wb3RlbmN5TGV2ZWwSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iUAoQSWRlbXBvdGVuY3lMZXZlbBIXChNJREVNUE9URU5DWV9VTktOT1dOEAASEwoPTk9fU0lERV9FRkZFQ1RTEAESDgoKSURFTVBPVEVOVBACKgkI6AcQgICAgAIimgMKE1VuaW50ZXJwcmV0ZWRPcHRpb24SQQoEbmFtZRgCIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uLk5hbWVQYXJ0UgRuYW1lEikKEGlkZW50aWZpZXJfdmFsdWUYAyABKAlSD2lkZW50aWZpZXJWYWx1ZRIsChJwb3NpdGl2ZV9pbnRfdmFsdWUYBCABKARSEHBvc2l0aXZlSW50VmFsdWUSLAoSbmVnYXRpdmVfaW50X3ZhbHVlGAUgASgDUhBuZWdhdGl2ZUludFZhbHVlEiEKDGRvdWJsZV92YWx1ZRgGIAEoAVILZG91YmxlVmFsdWUSIQoMc3RyaW5nX3ZhbHVlGAcgASgMUgtzdHJpbmdWYWx1ZRInCg9hZ2dyZWdhdGVfdmFsdWUYCCABKAlSDmFnZ3JlZ2F0ZVZhbHVlGkoKCE5hbWVQYXJ0EhsKCW5hbWVfcGFydBgBIAIoCVIIbmFtZVBhcnQSIQoMaXNfZXh0ZW5zaW9uGAIgAigIUgtpc0V4dGVuc2lvbiKnAgoOU291cmNlQ29kZUluZm8SRAoIbG9jYXRpb24YASADKAsyKC5nb29nbGUucHJvdG9idWYuU291cmNlQ29kZUluZm8uTG9jYXRpb25SCGxvY2F0aW9uGs4BCghMb2NhdGlvbhIWCgRwYXRoGAEgAygFQgIQAVIEcGF0aBIWCgRzcGFuGAIgAygFQgIQAVIEc3BhbhIpChBsZWFkaW5nX2NvbW1lbnRzGAMgASgJUg9sZWFkaW5nQ29tbWVudHMSKwoRdHJhaWxpbmdfY29tbWVudHMYBCABKAlSEHRyYWlsaW5nQ29tbWVudHMSOgoZbGVhZGluZ19kZXRhY2hlZF9jb21tZW50cxgGIAMoCVIXbGVhZGluZ0RldGFjaGVkQ29tbWVudHMi0AIKEUdlbmVyYXRlZENvZGVJbmZvEk0KCmFubm90YXRpb24YASADKAsyLS5nb29nbGUucHJvdG9idWYuR2VuZXJhdGVkQ29kZUluZm8uQW5ub3RhdGlvblIKYW5ub3RhdGlvbhrrAQoKQW5ub3RhdGlvbhIWCgRwYXRoGAEgAygFQgIQAVIEcGF0aBIfCgtzb3VyY2VfZmlsZRgCIAEoCVIKc291cmNlRmlsZRIUCgViZWdpbhgDIAEoBVIFYmVnaW4SEAoDZW5kGAQgASgFUgNlbmQSUgoIc2VtYW50aWMYBSABKA4yNi5nb29nbGUucHJvdG9idWYuR2VuZXJhdGVkQ29kZUluZm8uQW5ub3RhdGlvbi5TZW1hbnRpY1IIc2VtYW50aWMiKAoIU2VtYW50aWMSCAoETk9ORRAAEgcKA1NFVBABEgkKBUFMSUFTEAJCfgoTY29tLmdvb2dsZS5wcm90b2J1ZkIQRGVzY3JpcHRvclByb3Rvc0gBWi1nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9kZXNjcmlwdG9ycGL4AQGiAgNHUEKqAhpHb29nbGUuUHJvdG9idWYuUmVmbGVjdGlvbkr9+wIKBxIFJgCDCAEKqg8KAQwSAyYAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtsCIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIFRoZSBtZXNzYWdlcyBpbiB0aGlzIGZpbGUgZGVzY3JpYmUgdGhlIGRlZmluaXRpb25zIGZvdW5kIGluIC5wcm90byBmaWxlcy4KIEEg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GwoNCgUEBAIIAxIEggIeIAoMCgQEBAIJEgSEAgIkCg0KBQQEAgkEEgSEAgIKCg0KBQQEAgkGEgSEAgsXCg0KBQQEAgkBEgSEAhgfCg0KBQQEAgkDEgSEAiIjCrMJCgQEBAIKEgSbAgIlGqQJIElmIHRydWUsIHRoaXMgaXMgYSBwcm90bzMgIm9wdGlvbmFsIi4gV2hlbiBhIHByb3RvMyBmaWVsZCBpcyBvcHRpb25hbCwgaXQKIHRyYWNrcyBwcmVzZW5jZSByZWdhcmRsZXNzIG9mIGZpZWxkIHR5cGUuCgogV2hlbiBwcm90bzNfb3B0aW9uYWwgaXMgdHJ1ZSwgdGhpcyBmaWVsZCBtdXN0IGJlIGJlbG9uZyB0byBhIG9uZW9mIHRvCiBzaWduYWwgdG8gb2xkIHByb3RvMyBjbGllbnRzIHRoYXQgcHJlc2VuY2UgaXMgdHJhY2tlZCBmb3IgdGhpcyBmaWVsZC4gVGhpcwogb25lb2YgaXMga25vd24gYXMgYSAic3ludGhldGljIiBvbmVvZiwgYW5kIHRoaXMgZmllbGQgbXVzdCBiZSBpdHMgc29sZQogbWVtYmVyIChlYWNoIHByb3RvMyBvcHRpb25hbCBmaWVsZCBnZXRzIGl0cyBvd24gc3ludGhldGljIG9uZW9mKS4gU3ludGhldGljCiBvbmVvZnMgZXhpc3QgaW4gdGhlIGRlc2NyaXB0b3Igb25seSwgYW5kIGRvIG5vdCBnZW5lcmF0ZSBhbnkgQVBJLiBTeW50aGV0aWMKIG9uZW9mcyBtdXN0IGJlIG9yZGVyZWQgYWZ0ZXIgYWxsICJyZWFsIiBvbmVvZnMuCgogRm9yIG1lc3NhZ2UgZmllbGRzLCBwcm90bzNfb3B0aW9uYWwgZG9lc24ndCBjcmVhdGUgYW55IHNlbWFudGljIGNoYW5nZSwKIHNpbmNlIG5vbi1yZXBlYXRlZCBtZXNzYWdlIGZpZWxkcyBhbHdheXMgdHJhY2sgcHJlc2VuY2UuIEhvd2V2ZXIgaXQgc3RpbGwKIGluZGljYXRlcyB0aGUgc2VtYW50aWMgZGV0YWlsIG9mIHdoZXRoZXIgdGhlIHVzZXIgd3JvdGUgIm9wdGlvbmFsIiBvciBub3QuCiBUaGlzIGNhbiBiZSB1c2VmdWwgZm9yIHJv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cHRpb25zIG1lc3NhZ2VzLgogVGhlc2UgZXh0ZW5zaW9ucyBtYXkgbm90IHlldCBiZSBrbm93biBhdCBwYXJzaW5nIHRpbWUsIHNvIHRoZSBwYXJzZXIgY2Fubm90CiBzdG9yZSB0aGUgdmFsdWVzIGluIHRoZW0uICBJbnN0ZWFkIGl0IHN0b3JlcyB0aGVtIGluIGEgZmllbGQgaW4gdGhlICpPcHRpb25zCiBtZXNzYWdlIGNhbGxlZCB1bmludGVycHJldGVkX29wdGlvbi4gVGhpcyBmaWVsZCBtdXN0IGhhdmUgdGhlIHNhbWUgbmFtZQogYWNyb3NzIGFsbCAqT3B0aW9ucyBtZXNzYWdlcy4gV2UgdGhlbiB1c2UgdGhpcyBmaWVsZCB0byBwb3B1bGF0ZSB0aGUKIGV4dGVuc2lvbnMgd2hlbiB3ZSBidWlsZCBhIGRlc2NyaXB0b3IsIGF0IHdoaWNoIHBvaW50IGFsbCBwcm90b3MgaGF2ZSBiZWVuCiBwYXJzZWQgYW5kIHNvIGFsbCBleHRlbnNpb25zIGFyZSBrbm93bi4KCiBFeHRlbnNpb24gbnVtYmVycyBmb3IgY3VzdG9tIG9wdGlvbnMgbWF5IGJlIGNob3NlbiBhcyBmb2xsb3dzOgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIG9ubHkgYmUgdXNlZCB3aXRoaW4gYSBzaW5nbGUgYXBwbGljYXRpb24gb3IKICAgb3JnYW5pemF0aW9uLCBvciBmb3IgZXhwZXJpbWVudGFsIG9wdGlvbnMsIHVzZSBmaWVsZCBudW1iZXJzIDUwMDAwCiAgIHRocm91Z2ggOTk5OTkuICBJdCBpcyB1cCB0byB5b3UgdG8gZW5zdXJlIHRoYXQgeW91IGRvIG5vdCB1c2UgdGhlCiAgIHNhbWUgbnVtYmVyIGZvciBtdWx0aXBsZSBvcHRpb25zLgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIGJlIHB1Ymxpc2hlZCBhbmQgdXNlZCBwdWJsaWNseSBieSBtdWx0aXBsZQogICBpbmRlcGVuZGVudCBlbnRpdGllcywgZS1tYWlsIHByb3RvYnVmLWdsb2JhbC1leHRlbnNpb24tcmVnaXN0cnlAZ29vZ2xlLmNvbQogICB0byByZXNlcnZlIGV4dGVuc2lvbiBudW1iZXJzLiBTaW1wbHkgcHJvdmlkZSB5b3VyIHByb2plY3QgbmFtZSAoZS5nLgogICBPYmplY3RpdmUtQyBwbHVnaW4pIGFuZCB5b3VyIHByb2plY3Qgd2Vic2l0ZSAoaWYgYXZhaWxhYmxlKSAtLSB0aGVyZSdzIG5vCiAgIG5lZWQgdG8gZXhwbGFpbiBob3cgeW91IGludGVuZCB0byB1c2UgdGhlbS4gVXN1YWxseSB5b3Ugb25seSBuZWVkIG9uZQogICBleHRlbnNpb24gbnVtYmVyLiBZb3UgY2FuIGRlY2xhcmUgbXVsdGlwbGUgb3B0aW9ucyB3aXRoIG9ubHkgb25lIGV4dGVuc2lvbgogICBudW1iZXIgYnkgcHV0dGluZyB0aGVtIGluIGEgc3ViLW1lc3NhZ2UuIFNlZSB0aGUgQ3VzdG9tIE9wdGlvbnMgc2VjdGlvbiBvZgogICB0aGUgZG9jcyBmb3IgZXhhbXBsZXM6CiAgIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90byNvcHRpb25zCiAgIElmIHRoaXMgdHVybnMgb3V0IHRvIGJlIHBvcHVsYXIsIGEgd2ViIHNlcnZpY2Ugd2lsbCBiZSBzZXQgdXAKICAgdG8gYXV0b21hdGljYWxseSBhc3NpZ24gb3B0aW9uIG51bWJlcnMuCgoLCgMECgESBIIDCBMK9AEKBAQKAgASBIgDAiMa5QEgU2V0cyB0aGUgSmF2YSBwYWNrYWdlIHdoZXJlIGNsYXNzZXMgZ2VuZXJhdGVkIGZyb20gdGhpcyAucHJvdG8gd2lsbCBiZQogcGxhY2VkLiAgQnkgZGVmYXVsdCwgdGhlIHByb3RvIHBhY2thZ2UgaXMgdXNlZCwgYnV0IHRoaXMgaXMgb2Z0ZW4KIGluYXBwcm9wcmlhdGUgYmVjYXVzZSBwcm90byBwYWNrYWdlcyBkbyBub3Qgbm9ybWFsbHkgc3RhcnQgd2l0aCBiYWNrd2FyZHMKIGRvbWFpbiBuYW1lcy4KCg0KBQQKAgAEEgSIAwIKCg0KBQQKAgAFEgSIAwsRCg0KBQQKAgABEgSIAxIeCg0KBQQKAgADEgSIAyEiCvECCgQECgIBEgSPAwIrGuICIENvbnRyb2xzIHRoZSBuYW1lIG9mIHRoZSB3cmFwcGVyIEphdmEgY2xhc3MgZ2VuZXJhdGVkIGZvciB0aGUgLnByb3RvIGZpbGUuCiBUaGF0IGNsYXNzIHdpbGwgYWx3YXlzIGNvbnRhaW4gdGhlIC5wcm90byBmaWxlJ3MgZ2V0RGVzY3JpcHRvcigpIG1ldGhvZCBhcwogd2VsbCBhcyBhbnkgdG9wLWxldmVsIGV4dGVuc2lvbnMgZGVmaW5lZCBpbiB0aGUgLnByb3RvIGZpbGUuCiBJZiBqYXZhX211bHRpcGxlX2ZpbGVzIGlzIGRpc2FibGVkLCB0aGVuIGFsbCB0aGUgb3RoZXIgY2xhc3NlcyBmcm9tIHRoZQogLnByb3RvIGZpbGUgd2lsbCBiZSBuZXN0ZWQgaW5zaWRlIHRoZSBzaW5nbGUgd3JhcHBlciBvdXRlciBjbGFzcy4KCg0KBQQKAgEEEgSPAwIKCg0KBQQKAgEFEgSPAwsRCg0KBQQKAgEBEgSPAxImCg0KBQQKAgEDEgSPAykqCqYDCgQECgICEgSXAwI7GpcDIElmIGVuYWJsZWQsIHRoZW4gdGhlIEphdmEgY29kZSBnZW5lcmF0b3Igd2lsbCBnZW5lcmF0ZSBhIHNlcGFyYXRlIC5qYXZhCiBmaWxlIGZvciBlYWNoIHRvcC1sZXZlbCBtZXNzYWdlLCBlbnVtLCBhbmQgc2VydmljZSBkZWZpbmVkIGluIHRoZSAucHJvdG8KIGZpbGUuICBUaHVzLCB0aGVzZSB0eXBlcyB3aWxsICpub3QqIGJlIG5lc3RlZCBpbnNpZGUgdGhlIHdyYXBwZXIgY2xhc3MKIG5hbWVkIGJ5IGphdmFfb3V0ZXJfY2xhc3NuYW1lLiAgSG93ZXZlciwgdGhlIHdyYXBwZXIgY2xhc3Mgd2lsbCBzdGlsbCBiZQogZ2VuZXJhdGVkIHRvIGNvbnRhaW4gdGhlIGZpbGUncyBnZXREZXNjcmlwdG9yKCkgbWV0aG9kIGFzIHdlbGwgYXMgYW55CiB0b3AtbGV2ZWwgZXh0ZW5zaW9ucyBkZWZpbmVkIGluIHRoZSBmaWxlLgoKDQoFBAoCAgQSBJcDAgoKDQoFBAoCAgUSBJcDCw8KDQoFBAoCAgESBJcDECMKDQoFBAoC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Zm9yIGFueSBvdGhlciByZWFzb246ICBJdCdzIGxlc3MKIGVmZmljaWVudCwgaGFzIGZld2VyIGZlYXR1cmVzLCBhbmQgaXMgbW9yZSBjb21wbGljYXRlZC4KCiBUaGUgbWVzc2FnZSBtdXN0IGJlIGRlZmluZWQgZXhhY3RseSBhcyBmb2xsb3dzOgogICBtZXNzYWdlIEZvbyB7CiAgICAgb3B0aW9uIG1lc3NhZ2Vfc2V0X3dpcmVfZm9ybWF0ID0gdHJ1ZTsKICAgICBleHRlbnNpb25zIDQgdG8gbWF4OwogICB9CiBOb3RlIHRoYXQgdGhlIG1lc3NhZ2UgY2Fubm90IGhhdmUgYW55IGRlZmluZWQgZmllbGRzOyBNZXNzYWdlU2V0cyBvbmx5CiBoYXZlIGV4dGVuc2lvbnMuCgogQWxsIGV4dGVuc2lvbnMgb2YgeW91ciB0eXBlIG11c3QgYmUgc2luZ3VsYXIgbWVzc2FnZXM7IGUuZy4gdGhleSBjYW5ub3QKIGJlIGludDMycywgZW51bXMsIG9yIHJlcGVhdGVkIG1lc3NhZ2VzLgoKIEJlY2F1c2UgdGhpcyBpcyBhbiBvcHRpb24sIHRoZSBhYm92ZSB0d28gcmVzdHJpY3Rpb25zIGFyZSBub3QgZW5mb3JjZWQgYnkKIHRoZSBwcm90b2NvbCBjb21waWxlci4KCg0KBQQLAgAEEgSLBAIKCg0KBQQLAgAFEgSLBAsPCg0KBQQLAgABEgSLBBAnCg0KBQQLAgADEgSLBCorCg0KBQQLAgAIEgSLBCw9Cg0KBQQLAgAHEgSLBDc8CusBCgQECwIBEgSQBAJGGtwBIERpc2FibGVzIHRoZSBnZW5lcmF0aW9uIG9mIHRoZSBzdGFuZGFyZCAiZGVzY3JpcHRvcigpIiBhY2Nlc3Nvciwgd2hpY2ggY2FuCiBjb25mbGljdCB3aXRoIGEgZmllbGQgb2YgdGhlIHNhbWUgbmFtZS4gIFRoaXMgaXMgbWVhbnQgdG8gbWFrZSBtaWdyYXRpb24KIGZyb20gcHJvdG8xIGVhc2llcjsgbmV3IGNvZGUgc2hvdWxkIGF2b2lkIGZpZWxkcyBuYW1lZCAiZGVzY3JpcHRvciIuCgoNCgUECwIBBBIEkAQCCgoNCgUECwIBBRIEkAQLDwoNCgUECwIBARIEkAQQLwoNCgUECwIBAxIEkAQyMwoNCgUECwIBCBIEkAQ0RQoNCgUECwIBBxIEkAQ/RAruAQoEBAsCAhIElgQCMRrfASBJcyB0aGlzIG1lc3NhZ2UgZGVwcmVjYXRlZD8KIERlcGVuZGluZyBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtLCB0aGlzIGNhbiBlbWl0IERlcHJlY2F0ZWQgYW5ub3RhdGlvbnMKIGZvciB0aGUgbWVzc2FnZSwgb3IgaXQgd2lsbCBiZSBjb21wbGV0ZWx5IGlnbm9yZWQ7IGluIHRoZSB2ZXJ5IGxlYXN0LAogdGhpcyBpcyBhIGZvcm1hbGl6YXRpb24gZm9yIGRlcHJlY2F0aW5nIG1lc3NhZ2VzLgoKDQoFBAsCAgQSBJYEAgoKDQoFBAsCAgUSBJYECw8KDQoFBAsCAgESBJYEEBoKDQoFBAsCAgMSBJYEHR4KDQoFBAsCAggSBJYEHzAKDQoFBAsCAgcSBJYEKi8KCwoDBAsJEgSYBAITCgwKBAQLCQASBJgECwwKDQoFBAsJAAESBJgECwwKDQoFBAsJAAISBJgECwwKDAoEBAsJARIEmAQODwoNCgUECwkBARIEmAQODwoNCgUECwkBAhIEmAQODwoMCgQECwkCEgSYBBESCg0KBQQLCQIBEgSYBBESCg0KBQQLCQICEgSYBBESCqAGCgQECwIDEgSvBAIeGpEGIE5PVEU6IERvIG5vdCBzZXQgdGhlIG9wdGlvbiBpbiAucHJvdG8gZmlsZXMuIEFsd2F5cyB1c2UgdGhlIG1hcHMgc3ludGF4CiBpbnN0ZWFkLiBUaGUgb3B0aW9uIHNob3VsZCBvbmx5IGJlIGltcGxpY2l0bHkgc2V0IGJ5IHRoZSBwcm90byBjb21waWxlcgogcGFyc2VyLgoKIFdoZXRoZXIgdGhlIG1lc3NhZ2UgaXMgYW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFwIGVudHJ5IHR5cGUgZm9yIHRoZQogbWFwcyBmaWVsZC4KCiBGb3IgbWFwcyBmaWVsZHM6CiAgICAgbWFwPEtleVR5cGUsIFZhbHVlVHlwZT4gbWFwX2ZpZWxkID0gMTsKIFRoZSBwYXJzZWQgZGVzY3JpcHRvciBsb29rcyBsaWtlOgogICAgIG1lc3NhZ2UgTWFwRmllbGRFbnRyeSB7CiAgICAgICAgIG9wdGlvbiBtYXBfZW50cnkgPSB0cnVlOwogICAgICAgICBvcHRpb25hbCBLZXlUeXBlIGtleSA9IDE7CiAgICAgICAgIG9wdGlvbmFsIFZhbHVlVHlwZSB2YWx1ZSA9IDI7CiAgICAgfQogICAgIHJlcGVhdGVkIE1hcEZpZWxkRW50cnkgbWFwX2ZpZWxkID0gMTsKCiBJbXBsZW1lbnRhdGlvbnMgbWF5IGNob29zZSBub3QgdG8gZ2VuZXJhdGUgdGhlIG1hcF9lbnRyeT10cnVlIG1lc3NhZ2UsIGJ1dAogdXNlIGEgbmF0aXZlIG1hcCBpbiB0aGUgdGFyZ2V0IGxhbmd1YWdlIHRvIGhvbGQgdGhlIGtleXMgYW5kIHZhbHVlcy4KIFRoZSByZWZsZWN0aW9uIEFQSXMgaW4gc3VjaCBpbXBsZW1lbnRhdGlvbnMgc3RpbGwgbmVlZCB0byB3b3JrIGFzCiBpZiB0aGUgZmllbGQgaXMgYSByZXBlYXRlZCBtZXNzYWdlIGZpZWxkLgoKDQoFBAsCAwQSBK8EAgoKDQoFBAsCAwUSBK8ECw8KDQoFBAsCAwESBK8EEBkKDQoFBAsCAwMSBK8EHB0KJAoDBAsJEgSxBAINIhcgamF2YWxpdGVfc2VyaWFsaXphYmxlCgoMCgQECwkDEgSxBAsMCg0KBQQLCQMBEgSxBAsMCg0KBQQLCQMCEgSxBAsMCh8KAwQLCRIEsgQCDSISIGphdmFuYW5vX2FzX2xpdGUKCgwKBAQLCQQSBLIECwwKDQoFBAsJBAESBLIECwwKDQoFBAsJBAISBLIECwwK6gMKBAQLAgQSBL4EAlAa2wMgRW5hYmxlIHRoZSBsZWdhY3kgaGFuZGxpbmcgb2YgSlNPTiBmaWVsZCBuYW1lIGNvbmZsaWN0cy4gIFRoaXMgbG93ZXJjYXNlcwogYW5kIHN0cmlwcyB1bmRlcnNjb3JlZCBmcm9tIHRoZSBmaWVsZHMgYmVmb3JlIGNvbXBhcmlzb24gaW4gcHJvdG8zIG9ubHkuCiBUaGUgbmV3IGJlaGF2aW9yIHRha2VzIGBqc29uX25hbWVgIGludG8gYWNjb3VudCBhbmQgYXBwbGllcyB0byBwcm90bzIgYXMKIHdlbGwu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ZSBmaWVsZHMgdG8gZW5hYmxlCiBhIG1vcmUgZWZmaWNpZW50IHJlcHJlc2VudGF0aW9uIG9uIHRoZSB3aXJlLiBSYXRoZXIgdGhhbiByZXBlYXRlZGx5CiB3cml0aW5nIHRoZSB0YWcgYW5kIHR5cGUgZm9yIGVhY2ggZWxlbWVudCwgdGhlIGVudGlyZSBhcnJheSBpcyBlbmNvZGVkIGFzCiBhIHNpbmdsZSBsZW5ndGgtZGVsaW1pdGVkIGJsb2IuIEluIHByb3RvMywgb25seSBleHBsaWNpdCBzZXR0aW5nIGl0IHRvCiBmYWxzZSB3aWxsIGF2b2lkIHVzaW5nIHBhY2tlZCBlbmNvZGluZy4KCg0KBQQMAgEEEgTiBAIKCg0KBQQMAgEFEgTiBAsPCg0KBQQMAgEBEgTiBBAWCg0KBQQMAgEDEgTiBBkaCpoFCgQEDAICEgTvBAIzGosFIFRoZSBqc3R5cGUgb3B0aW9uIGRldGVybWluZXMgdGhlIEphdmFTY3JpcHQgdHlwZSB1c2VkIGZvciB2YWx1ZXMgb2YgdGhlCiBmaWVsZC4gIFRoZSBvcHRpb24gaXMgcGVybWl0dGVkIG9ubHkgZm9yIDY0IGJpdCBpbnRlZ3JhbCBhbmQgZml4ZWQgdHlwZXMKIChpbnQ2NCwgdWludDY0LCBzaW50NjQsIGZpeGVkNjQsIHNmaXhlZDY0KS4gIEEgZmllbGQgd2l0aCBqc3R5cGUgSlNfU1RSSU5HCiBpcyByZXByZXNlbnRlZCBhcyBKYXZhU2NyaXB0IHN0cmluZywgd2hpY2ggYXZvaWRzIGxvc3Mgb2YgcHJlY2lzaW9uIHRoYXQKIGNhbiBoYXBwZW4gd2hlbiBhIGxhcmdlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBhIGZsb2F0aW5nIHBvaW50IEphdmFTY3JpcHQuCiBTcGVjaWZ5aW5nIEpTX05VTUJFUiBmb3IgdGhlIGpzdHlwZSBjYXVzZXMgdGhlIGdlbmVyYXRlZCBKYXZhU2NyaXB0IGNvZGUgdG8KIHVzZSB0aGUgSmF2YVNjcmlwdCAibnVtYmVyIiB0eXBlLiAgVGhlIGJlaGF2aW9yIG9mIHRoZSBkZWZhdWx0IG9wdGlvbgogSlNfTk9STUFMIGlzIGltcGxlbWVudGF0aW9uIGRlcGVuZGVudC4KCiBUaGlzIG9wdGlvbiBpcyBhbiBlbnVtIHRvIHBlcm1pdCBhZGRpdGlvbmFsIHR5cGVzIHRvIGJlIGFkZGVkLCBlLmcuCiBnb29nLm1hdGguSW50ZWdlci4KCg0KBQQMAgIEEgTvBAIKCg0KBQQMAgIGEgTvBAsRCg0KBQQMAgIBEgTvBBIYCg0KBQQMAgIDEgTvBBscCg0KBQQMAgIIEgTvBB0yCg0KBQQMAgIHEgTvBCgxCg4KBAQMBAESBvAEAvkEAwoNCgUEDAQBARIE8AQHDQonCgYEDAQBAgASBPIEBBIaFyBVc2UgdGhlIGRlZmF1bHQgdHlwZS4KCg8KBwQMBAECAAESBPIEBA0KDwoHBAwEAQIAAhIE8gQQEQopCgYEDAQBAgESBPUEBBIaGSBVc2UgSmF2YVNjcmlwdCBzdHJpbmdzLgoKDwoHBAwEAQIBARIE9QQEDQoPCgcEDAQBAgECEgT1BBARCikKBgQMBAECAhIE+AQEEhoZIFVzZSBKYXZhU2NyaXB0IG51bWJlcnMuCgoPCgcEDAQBAgIBEgT4BAQNCg8KBwQMBAECAgISBPgEEBEK/w0KBAQMAgMSBJkFAisa8A0gU2hvdWxkIHRoaXMgZmllbGQgYmUgcGFyc2VkIGxhemlseT8gIExhenkgYXBwbGllcyBvbmx5IHRvIG1lc3NhZ2UtdHlwZQogZmllbGRzLiAgSXQgbWVhbnMgdGhhdCB3aGVuIHRoZSBvdXRlciBtZXNzYWdlIGlzIGluaXRpYWxseSBwYXJzZWQsIHRoZQogaW5uZXIgbWVzc2FnZSdzIGNvbnRlbnRzIHdpbGwgbm90IGJlIHBhcnNlZCBidXQgaW5zdGVhZCBzdG9yZWQgaW4gZW5jb2RlZAogZm9ybS4gIFRoZSBpbm5lciBtZXNzYWdlIHdpbGwgYWN0dWFsbHkgYmUgcGFyc2VkIHdoZW4gaXQgaXMgZmlyc3QgYWNjZXNzZWQuCgogVGhpcyBpcyBvbmx5IGEgaGludC4gIEltcGxlbWVudGF0aW9ucyBhcmUgZnJlZSB0byBjaG9vc2Ugd2hldGhlciB0byB1c2UKIGVhZ2VyIG9yIGxhenkgcGFyc2luZyByZWdhcmRsZXNzIG9mIHRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbi4gIEhvd2V2ZXIsCiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRydWUgc3VnZ2VzdHMgdGhhdCB0aGUgcHJvdG9jb2wgYXV0aG9yIGJlbGlldmVzIHRoYXQKIHVzaW5nIGxhenkgcGFyc2luZyBvbiB0aGlzIGZpZWxkIGlzIHdvcnRoIHRoZSBhZGRpdGlvbmFsIGJvb2trZWVwaW5nCiBvdmVyaGVhZCB0eXBpY2FsbHkgbmVlZGVkIHRvIGltcGxlbWVudCBpdC4KCiBUaGlzIG9wdGlvbiBkb2VzIG5vdCBhZmZlY3QgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgYW55IGdlbmVyYXRlZCBjb2RlOwogYWxsIG1ldGhvZCBzaWduYXR1cmVzIHJlbWFpbiB0aGUgc2FtZS4gIEZ1cnRoZXJtb3JlLCB0aHJlYWQtc2FmZXR5IG9mIHRoZQogaW50ZXJmYWNlIGlzIG5vdCBhZmZlY3RlZCBieSB0aGlzIG9wdGlvbjsgY29uc3QgbWV0aG9kcyByZW1haW4gc2FmZSB0bwogY2FsbCBmcm9tIG11bHRpcGxlIHRocmVhZHMgY29uY3VycmVudGx5LCB3aGlsZSBub24tY29uc3QgbWV0aG9kcyBjb250aW51ZQogdG8gcmVxdWlyZSBleGNsdXNpdmUgYWNjZXNzLgoKIE5vdGUgdGhhdCBpbXBsZW1lbnRhdGlvbnMgbWF5IGNob29zZSBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzIHdpdGhpbgogYSBsYXp5IHN1Yi1tZXNzYWdlLiAgVGhhdCBpcywgY2FsbGluZyBJc0luaXRpYWxpemVkKCkgb24gdGhlIG91dGVyIG1lc3NhZ2UKIG1heSByZXR1cm4gdHJ1ZSBldmVuIGlmIHRoZSBpbm5lciBtZXNzYWdlIGhhcyBtaXNzaW5nIHJlcXVpcmVkIGZpZWxkcy4KIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBpbm5lciBtZXNzYWdlIHdvdWxkIGhhdmUgdG8gYmUKIHBhcnNlZCBpbiBvcmRlciB0byBwZXJmb3JtIHRoZSBjaGVjaywgZGVmZWF0aW5nIHRoZSBwdXJwb3NlIG9mIGxhenkKIHBhcnNpbmcuICBBbiBpbXBsZW1lbnRhdGlvbiB3aGljaCBjaG9vc2VzIG5vdCB0byBjaGVjayByZXF1aXJlZCBmaWVsZHMKIG11c3QgYmUgY29uc2lzdGVudCBhYm91dCBpdC4gIFRoYXQgaXMsIGZvciBhbnkgcGFydGljdWxhciBzdWItbWVzc2FnZSwgdGhlCiBpbXBsZW1lbnRhdGlvbiBtdXN0IGVpdGhlciAqYWx3YXlzKiBjaGVjayBpdHMgcmVxdWlyZWQgZmllbGRzLCBvciAqbmV2ZXIqCiBjaGVjayBpdHMgcmVxdWlyZWQgZmllbGRzLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBtZXNzYWdlIGhhcwogYmVlbiBwYXJzZWQuCgogQXMgb2YgTWF5IDIwMjIsIGxhenkgdmVyaWZpZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBieXRlIHN0cmVhbSBkdXJpbmcKIHBhcnNpbmcuICBBbiBpbnZhbGlkIGJ5dGUgc3RyZWFtIHdpbGwgY2F1c2UgdGhlIG92ZXJhbGwgcGFyc2luZyB0byBmYWlsLgoKDQoFBAwCAwQSBJkFAgoKDQoFBAwCAwUSBJkFCw8KDQoFBAwCAwESBJkFEBQKDQoFBAwCAwMSBJkFFxgKDQoFBAwCAwgSBJkFGSoKDQoFBAwCAwcSBJkFJCkKrwEKBAQMAgQSBJ4FAjcaoAEgdW52ZXJpZmllZF9sYXp5IGRvZXMgbm8gY29ycmVjdG5lc3MgY2hlY2tzIG9uIHRoZSBieXRlIHN0cmVhbS4gVGhpcyBzaG91bGQKIG9ubHkgYmUgdXNlZCB3aGVyZSBsYXp5IHdpdGggdmVyaWZpY2F0aW9uIGlzIHByb2hpYml0aXZlIGZvciBwZXJmb3JtYW5jZQogcmVhc29ucy4KCg0KBQQMAgQEEgSeBQIKCg0KBQQMAgQFEgSeBQsPCg0KBQQMAgQBEgSeBRAfCg0KBQQMAgQDEgSeBSIkCg0KBQQMAgQIEgSeBSU2Cg0KBQQMAgQHEgSeBTA1CugBCgQEDAIFEgSkBQIxGtkBIElzIHRoaXMgZmllbGQgZGVwcmVjYXRlZD8KIERlcGVuZGluZyBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtLCB0aGlzIGNhbiBlbWl0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AwQQBRIEmQYCGRpNIENsaWVudHMgY2FuIGRlZmluZSBjdXN0b20gb3B0aW9ucyBpbiBleHRlbnNpb25zIG9mIHRoaXMgbWVzc2FnZS4gU2VlIGFib3ZlLgoKDAoEBBAFABIEmQYNGAoNCgUEEAUAARIEmQYNEQoNCgUEEAUAAhIEmQYVGAoMCgIEERIGnAYAuQYBCgsKAwQRARIEnAYIFQrWAwoEBBECABIEpwYCMhrcASBJcyB0aGlzIG1ldGhvZCBkZXByZWNhdGVkPwogRGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0sIHRoaXMgY2FuIGVtaXQgRGVwcmVjYXRlZCBhbm5vdGF0aW9ucwogZm9yIHRoZSBtZXRob2QsIG9yIGl0IHdpbGwgYmUgY29tcGxldGVseSBpZ25vcmVkOyBpbiB0aGUgdmVyeSBsZWFzdCwKIHRoaXMgaXMgYSBmb3JtYWxpemF0aW9uIGZvciBkZXByZWNhdGluZyBtZXRob2RzLgoy6AEgTm90ZTogIEZpZWxkIG51bWJlcnMgMSB0aHJvdWdoIDMyIGFyZSByZXNlcnZlZCBmb3IgR29vZ2xlJ3MgaW50ZXJuYWwgUlBDCiAgIGZyYW1ld29yay4gIFdlIGFwb2xvZ2l6ZSBmb3IgaG9hcmRpbmcgdGhlc2UgbnVtYmVycyB0byBvdXJzZWx2ZXMsIGJ1dAogICB3ZSB3ZXJlIGFscmVhZHkgdXNpbmcgdGhlbSBsb25nIGJlZm9yZSB3ZSBkZWNpZGVkIHRvIHJlbGVhc2UgUHJvdG9jb2wKICAgQnVmZmVycy4KCg0KBQQRAgAEEgSnBgIKCg0KBQQRAgAFEgSnBgsPCg0KBQQRAgABEgSnBhAaCg0KBQQRAgADEgSnBh0fCg0KBQQRAgAIEgSnBiAxCg0KBQQRAgAHEgSnBiswCvABCgQEEQQAEgasBgKwBgMa3wEgSXMgdGhpcyBtZXRob2Qgc2lkZS1lZmZlY3QtZnJlZSAob3Igc2FmZSBpbiBIVFRQIHBhcmxhbmNlKSwgb3IgaWRlbXBvdGVudCwKIG9yIG5laXRoZXI/IEhUVFAgYmFzZWQgUlBDIGltcGxlbWVudGF0aW9uIG1heSBjaG9vc2UgR0VUIHZlcmIgZm9yIHNhZmUKIG1ldGhvZHMs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Y3VtZW50YXRpb24gZ2VuZXJhdG9ycywgYW5kIHNpbWlsYXIKIHRvb2xzLgoKIEZvciBleGFtcGxlLCBzYXkgd2UgaGF2ZSBhIGZpbGUgbGlrZToKICAgbWVzc2FnZSBGb28gewogICAgIG9wdGlvbmFsIHN0cmluZyBmb28gPSAxOwogICB9CiBMZXQncyBsb29rIGF0IGp1c3QgdGhlIGZpZWxkIGRlZmluaXRpb246CiAgIG9wdGlvbmFsIHN0cmluZyBmb28gPSAxOwogICBeICAgICAgIF5eICAgICBeXiAgXiAgXl5eCiAgIGEgICAgICAgYmMgICAgIGRlICBmICBnaGkKIFdlIGhhdmUgdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6CiAgIHNwYW4gICBwYXRoICAgICAgICAgICAgICAgcmVwcmVzZW50cwogICBbYSxpKSAgWyA0LCAwLCAyLCAwIF0gICAgIFRoZSB3aG9sZSBmaWVsZCBkZWZpbml0aW9uLgogICBbYSxiKSAgWyA0LCAwLCAyLCAwLCA0IF0gIFRoZSBsYWJlbCAob3B0aW9uYWwpLgogICBbYyxkKSAgWyA0LCAwLCAyLCAwLCA1IF0gIFRoZSB0eXBlIChzdHJpbmcpLgogICBbZSxmKSAgWyA0LCAwLCAyLCAwLCAxIF0gIFRoZSBuYW1lIChmb28pLgogICBbZyxoKSAgWyA0LCAwLCAyLCAwLCAzIF0gIFRoZSBudW1iZXIgKDEpLgoKIE5vdGVzOgogLSBBIGxvY2F0aW9uIG1heSByZWZlciB0byBhIHJlcGVhdGVkIGZpZWxkIGl0c2VsZiAoaS5lLiBub3QgdG8gYW55CiAgIHBhcnRpY3VsYXIgaW5kZXggd2l0aGluIGl0KS4gIFRoaXMgaXMgdXNlZCB3aGVuZXZlciBhIHNldCBvZiBlbGVtZW50cyBhcmUKICAgbG9naWNhbGx5IGVuY2xvc2VkIGluIGEgc2luZ2xlIGNvZGUgc2VnbWVudC4gIEZvciBleGFtcGxlLCBhbiBlbnRpcmUKICAgZXh0ZW5kIGJsb2NrIChwb3NzaWJseSBjb250YWluaW5nIG11bHRpcGxlIGV4dGVuc2lvbiBkZWZpbml0aW9ucykgd2lsbAogICBoYXZlIGFuIG91dGVyIGxvY2F0aW9uIHdob3NlIHBhdGggcmVmZXJzIHRvIHRoZSAiZXh0ZW5zaW9ucyIgcmVwZWF0ZWQKICAgZmllbGQgd2l0aG91dCBhbiBpbmRleC4KIC0gTXVsdGlwbGUgbG9jYXRpb25zIG1heSBoYXZlIHRoZSBzYW1lIHBhdGguICBUaGlzIGhhcHBlbnMgd2hlbiBhIHNpbmdsZQogICBsb2dpY2FsIGRlY2xhcmF0aW9uIGlzIHNwcmVhZCBvdXQgYWNyb3NzIG11bHRpcGxlIHBsYWNlcy4gIFRoZSBtb3N0CiAgIG9idmlvdXMgZXhhbXBsZSBpcyB0aGUgImV4dGVuZCIgYmxvY2sgYWdhaW4gLS0gdGhlcmUgbWF5IGJlIG11bHRpcGxlCiAgIGV4dGVuZCBibG9ja3MgaW4gdGhlIHNhbWUgc2NvcGUsIGVhY2ggb2Ygd2hpY2ggd2lsbCBoYXZlIHRoZSBzYW1lIHBhdGguCiAtIEEgbG9jYXRpb24ncyBzcGFuIGlzIG5vdCBhbHdheXMgYSBzdWJzZXQgb2YgaXRzIHBhcmVudCdzIHNwYW4uICBGb3IKICAgZXhhbXBsZSwgdGhlICJleHRlbmRlZSIgb2YgYW4gZXh0ZW5zaW9uIGRlY2xhcmF0aW9uIGFwcGVhcnMgYXQgdGhlCiAgIGJlZ2lubmluZyBvZiB0aGUgImV4dGVuZCIgYmxvY2sgYW5kIGlzIHNoYXJlZCBieSBhbGwgZXh0ZW5zaW9ucyB3aXRoaW4KICAgdGhlIGJsb2NrLgogLSBKdXN0IGJlY2F1c2UgYSBsb2NhdGlvbidzIHNwYW4gaXMgYSBzdWJzZXQgb2Ygc29tZSBvdGhlciBsb2NhdGlvbidzIHNwYW4KICAgZG9lcyBub3QgbWVhbiB0aGF0IGl0IGlzIGEgZGVzY2VuZGFudC4gIEZvciBleGFtcGxlLCBhICJncm91cCIgZGVmaW5lcwogICBib3RoIGEgdHlwZSBhbmQgYSBmaWVsZCBpbiBhIHNpbmdsZSBkZWNsYXJhdGlvbi4gIFRodXMsIHRoZSBsb2NhdGlvbnMKICAgY29ycmVzcG9uZGluZyB0byB0aGUgdHlwZSBhbmQgZmllbGQgYW5kIHRoZWlyIGNvbXBvbmVudHMgd2lsbCBvdmVybGFwLgogLSBDb2RlIHdoaWNoIHRyaWVzIHRvIGludGVycHJldCBsb2NhdGlvbnMgc2hvdWxkIHByb2JhYmx5IGJlIGRlc2lnbmVkIHRvCiAgIGlnbm9yZSB0aG9zZSB0aGF0IGl0IGRvZXNuJ3QgdW5kZXJzdGFuZCwgYXMgbW9yZSB0eXBlcyBvZiBsb2NhdGlvbnMgY291bGQKICAgYmUgcmVjb3JkZWQgaW4gdGhlIGZ1dHVyZS4KCg0KBQQTAgAEEgSIBwIKCg0KBQQTAgAGEgSIBwsTCg0KBQQTAgABEgSIBxQcCg0KBQQTAgADEgSIBx8gCg4KBAQTAwASBokHAtwHAwoNCgUEEwMAARIEiQcKEgqJBwoGBBMDAAIAEgShBwQsGvgGIElkZW50aWZpZXMgd2hpY2ggcGFydCBvZiB0aGUgRmlsZURlc2NyaXB0b3JQcm90byB3YXMgZGVmaW5lZCBhdCB0aGlzCiBsb2NhdGlvbi4KCiBFYWNoIGVsZW1lbnQgaXMgYSBmaWVsZCBudW1iZXIgb3IgYW4gaW5kZXguICBUaGV5IGZvcm0gYSBwYXRoIGZyb20KIHRoZSByb290IEZpbGVEZXNjcmlwdG9yUHJvdG8gdG8gdGhlIHBsYWNlIHdoZXJlIHRoZSBkZWZpbml0aW9uIG9jY3Vycy4KIEZvciBleGFtcGxlLCB0aGlzIHBhdGg6CiAgIFsgNCwgMywgMiwgNywgMSBdCiByZWZlcnMgdG86CiAgIGZpbGUubWVzc2FnZV90eXBlKDMpICAvLyA0LCAzCiAgICAgICAuZmllbGQoNykgICAgICAgICAvLyAyLCA3CiAgICAgICAubmFtZSgpICAgICAgICAgICAvLyAxCiBUaGlzIGlzIGJlY2F1c2UgRmlsZURlc2NyaXB0b3JQcm90by5tZXNzYWdlX3R5cGUgaGFzIGZpZWxkIG51bWJlciA0OgogICByZXBlYXRlZCBEZXNjcmlwdG9yUHJvdG8gbWVzc2FnZV90eXBlID0gNDsKIGFuZCBEZXNjcmlwdG9yUHJvdG8uZmllbGQgaGFzIGZpZWxkIG51bWJlciAyOgogICByZXBlYXRlZCBGaWVsZERlc2NyaXB0b3JQcm90byBmaWVsZCA9IDI7CiBhbmQgRmllbGREZXNjcmlwdG9yUHJvdG8ubmFtZSBoYXMgZmllbGQgbnVtYmVyIDE6CiAgIG9wdGlvbmFsIHN0cmluZyBuYW1lID0gMTsKCiBUaHVzLCB0aGUgYWJvdmUgcGF0aCBnaXZlcyB0aGUgbG9jYXRpb24gb2YgYSBmaWVsZCBuYW1lLiAgSWYgd2UgcmVtb3ZlZAogdGhlIGxhc3QgZWxlbWVudDoKICAgWyA0LCAzLCAyLCA3IF0KIHRoaXMgcGF0aCByZWZlcnMgdG8gdGhlIHdob2xlIGZpZWxkIGRlY2xhcmF0aW9uIChmcm9tIHRoZSBiZWdpbm5pbmcKIG9mIHRoZSBsYWJlbCB0byB0aGUgdGVybWluYXRpbmcgc2VtaWNvbG9uKS4KCg8KBwQTAwACAAQSBKEHBAwKDwoHBBMDAAIABRIEoQcNEgoPCgcEEwMAAgABEgShBxMXCg8KBwQTAwACAAMSBKEHGhsKDwoHBBMDAAIACBIEoQccKwoQCggEEwMAAgAIAhIEoQcdKgrSAgoGBBMDAAIBEgSoBwQsGsECIEFsd2F5cyBoYXMgZXhhY3RseSB0aHJlZSBvciBmb3VyIGVsZW1lbnRzOiBzdGFydCBsaW5lLCBzdGFydCBjb2x1bW4sCiBlbmQgbGluZSAob3B0aW9uYWwsIG90aGVyd2lzZSBhc3N1bWVkIHNhbWUgYXMgc3RhcnQgbGluZSksIGVuZCBjb2x1bW4uCiBUaGVzZSBhcmUgcGFja2VkIGludG8gYSBzaW5nbGUgZmllbGQgZm9yIGVmZmljaWVuY3kuICBOb3RlIHRoYXQgbGluZQogYW5kIGNvbHVtbiBudW1iZXJzIGFyZSB6ZXJvLWJhc2VkIC0tIHR5cGljYWxseSB5b3Ugd2lsbCB3YW50IHRvIGFkZAogMSB0byBlYWNoIGJlZm9yZSBkaXNwbGF5aW5nIHRvIGEgdXNlci4KCg8KBwQTAwACAQQSBKgHBAwKDwoHBBMDAAIBBRIEqAcNEgoPCgcEEwMAAgEBEgSoBxMXCg8KBwQTAwACAQMSBKgHGhsKDwoHBBMDAAIBCBIEqAccKwoQCggEEwMAAgEIAhIEqAcdKgqlDAoGBBMDAAICEgTZBwQpGpQMIElmIHRoaXMgU291cmNlQ29kZUluZm8gcmVwcmVzZW50cyBhIGNvbXBsZXRlIGRlY2xhcmF0aW9uLCB0aGVzZSBhcmUgYW55CiBjb21tZW50cyBhcHBlYXJpbmcgYmVmb3JlIGFuZCBhZnRlciB0aGUgZGVjbGFyYXRpb24gd2hpY2ggYXBwZWFyIHRvIGJlCiBhdHRhY2hlZCB0byB0aGUgZGVjbGFyYXRpb24uCgogQSBzZXJpZXMgb2YgbGluZSBjb21tZW50cyBhcHBlYXJpbmcgb24gY29uc2VjdXRpdmUgbGluZXMsIHdpdGggbm8gb3RoZXIKIHRva2VucyBhcHBlYXJpbmcgb24gdGhvc2UgbGluZXMsIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHNpbmdsZSBjb21tZW50LgoKIGxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMgd2lsbCBrZWVwIHBhcmFncmFwaHMgb2YgY29tbWVudHMgdGhhdCBhcHBlYXIKIGJlZm9yZSAoYnV0IG5vdCBjb25uZWN0ZWQgdG8pIHRoZSBjdXJyZW50IGVsZW1lbnQuIEVhY2ggcGFyYWdyYXBoLAogc2VwYXJhdGVkIGJ5IGVtcHR5IGxpbmVzLCB3aWxsIGJlIG9uZSBjb21tZW50IGVsZW1lbnQgaW4gdGhlIHJlcGVhdGVkCiBmaWVsZC4KCiBPbmx5IHRoZSBjb21tZW50IGNvbnRlbnQgaXMgcHJvdmlkZWQ7IGNvbW1lbnQgbWFya2VycyAoZS5nLiAvLykgYXJlCiBzdHJpcHBlZCBvdXQuICBGb3IgYmxvY2sgY29tbWVudHMsIGxlYWRpbmcgd2hpdGVzcGFjZSBhbmQgYW4gYXN0ZXJpc2sKIHdpbGwgYmUgc3RyaXBwZWQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggbGluZSBvdGhlciB0aGFuIHRoZSBmaXJzdC4KIE5ld2xpbmVzIGFyZSBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LgoKIEV4YW1wbGVzOgoKICAgb3B0aW9uYWwgaW50MzIgZm9vID0gMTsgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gZm9vLgogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhci4KICAgb3B0aW9uYWwgaW50MzIgYmFyID0gMjsKCiAgIG9wdGlvbmFsIHN0cmluZyBiYXogPSAzOwogICAv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Cup8CjJjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2N1c3RvbV9vcHRpb25zX3Byb3RvMy5wcm90bxIRcHJvdG9idWZfdW5pdHRlc3QaIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvIusBChxUZXN0TWVzc2FnZVdpdGhDdXN0b21PcHRpb25zEiYKBmZpZWxkMRgBIAEoCUIOCAHB4MMdLeF1CgIAAABSBmZpZWxkMRIhCgtvbmVvZl9maWVsZBgCIAEoBUgAUgpvbmVvZkZpZWxkIlMKBkFuRW51bRIWChJBTkVOVU1fVU5TUEVDSUZJRUQQABIPCgtBTkVOVU1fVkFMMRABEhYKC0FORU5VTV9WQUwyEAIaBbCG+gV7GgjF9skd6/z//zoQCADg6cIdyP//////////AUIZCgdBbk9uZW9mEg74rMMdnf//////////ASIYChZDdXN0b21PcHRpb25Gb29SZXF1ZXN0IhkKF0N1c3RvbU9wdGlvbkZvb1Jlc3BvbnNlIh4KHEN1c3RvbU9wdGlvbkZvb0NsaWVudE1lc3NhZ2UiHgocQ3VzdG9tT3B0aW9uRm9vU2VydmVyTWVzc2FnZSKPAQoaRHVtbXlNZXNzYWdlQ29udGFpbmluZ0VudW0icQoMVGVzdEVudW1UeXBlEiAKHFRFU1RfT1BUSU9OX0VOVU1fVU5TUEVDSUZJRUQQABIaChZURVNUX09QVElPTl9FTlVNX1RZUEUxEBYSIwoWVEVTVF9PUFRJT05fRU5VTV9UWVBFMhDp//////////8BIiEKH0R1bW15TWVzc2FnZUludmFsaWRBc09wdGlvblR5cGUiigEKHEN1c3RvbU9wdGlvbk1pbkludGVnZXJWYWx1ZXM6apnWqB0AAAAAAAAAgK2Nrx0AAACAke6vHQAAAAAAAAAAnfWvHQAAAAD4l7Ad////////////AYDEsB3/////D/j1sB0AgJOyHQCwvLIdgICAgICAgICAAejGsh2AgICA+P////8B0N6yHQAikQEKHEN1c3RvbU9wdGlvbk1heEludGVnZXJWYWx1ZXM6cZnWqB3/////////f62Nrx3///9/ke6vHf//////////nfWvHf/////4l7Ad/v//////////AYDEsB3+////D/j1sB3///////////8BgJOyHf////8PsLyyHf//////////f+jGsh3/////B9Desh0BIm4KF0N1c3RvbU9wdGlvbk90aGVyVmFsdWVzOlOI2aId6f//////////AbLZoh0LSGVsbG8AV29ybGSq3KIdDkhlbGxvLCAiV29ybGQi6dyiHftZjELKwPM/9d+jHeeHRUHoxrIdnP//////////ASI0ChxTZXR0aW5nUmVhbHNGcm9tUG9zaXRpdmVJbnRzOhTp3KIdAAAAAABAY0D136MdAABAQSI0ChxTZXR0aW5nUmVhbHNGcm9tTmVnYXRpdmVJbnRzOhTp3KIdAAAAAABAY8D136MdAABAwSJiChJDb21wbGV4T3B0aW9uVHlwZTESEAoDZm9vGAEgASgFUgNmb28SEgoEZm9vMhgCIAEoBVIEZm9vMhISCgRmb28zGAMgASgFUgRmb28zEhIKBGZvbzQYBCADKAVSBGZvbzQirQMKEkNvbXBsZXhPcHRpb25UeXBlMhI3CgNiYXIYASABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTFSA2JhchIQCgNiYXoYAiABKAVSA2JhehJMCgRmcmVkGAMgASgLMjgucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUyLkNvbXBsZXhPcHRpb25UeXBlNFIEZnJlZBJQCgZiYXJuZXkYBCADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIuQ29tcGxleE9wdGlvblR5cGU0UgZiYXJuZXkaqwEKEkNvbXBsZXhPcHRpb25UeXBlNBIUCgV3YWxkbxgBIAEoBVIFd2FsZG8yfwoMY29tcGxleF9vcHQ0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGIr10QMgASgLMjgucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUyLkNvbXBsZXhPcHRpb25UeXBlNFILY29tcGxleE9wdDQiJgoSQ29tcGxleE9wdGlvblR5cGUzEhAKA3F1eBgBIAEoBVIDcXV4Ik4KFVZhcmlvdXNDb21wbGV4T3B0aW9uczo10qiPHQMIsw/63pAdAggJqv2QHRYKAwjnBRDbBxoDCMECIgIIZSIDCNQBouKVHQYIKiICY1giVwoJQWdncmVnYXRlEgwKAWkYASABKAVSAWkSDAoBcxgCIAEoCVIBcxIuCgNzdWIYAyABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSA3N1YiJkChBBZ2dyZWdhdGVNZXNzYWdlEjQKCWZpZWxkbmFtZRgBIAEoBUIW8qGHOxESD0ZpZWxkQW5ub3RhdGlvblIJZmllbGRuYW1lOhrC0YY7FQhlEhFNZXNzYWdlQW5ub3RhdGlvbiKkAQoQTmVzdGVkT3B0aW9uVHlwZRpICg1OZXN0ZWRNZXNzYWdlEi8KDG5lc3RlZF9maWVsZBgBIAEoBUIMweDDHeoDAAAAAAAAUgtuZXN0ZWRGaWVsZDoG4OnCHekHIkYKCk5lc3RlZEVudW0SDwoLVU5TUEVDSUZJRUQQABIdChFORVNURURfRU5VTV9WQUxVRRABGgawhvoF7AcaCMX2yR3rAwAAKlIKCk1ldGhvZE9wdDESGgoWTUVUSE9ET1BUMV9VTlNQRUNJRklFRBAAEhMKD01FVEhPRE9QVDFfVkFMMRABEhMKD01FVEhPRE9QVDFfVkFMMhACKl4KDUFnZ3JlZ2F0ZUVudW0SDwoLVU5TUEVDSUZJRUQQABIlCgVWQUxVRRABGhrK/Ik7FRITRW51bVZhbHVlQW5ub3RhdGlvbhoVkpWIOxASDkVudW1Bbm5vdGF0aW9uMo4BChxUZXN0U2VydmljZVdpdGhDdXN0b21PcHRpb25zEmMKA0ZvbxIpLnByb3RvYnVmX3VuaXR0ZXN0LkN1c3RvbU9wdGlvbkZvb1JlcXVlc3QaKi5wcm90b2J1Zl91bml0dGVzdC5DdXN0b21PcHRpb25Gb29SZXNwb25zZSIF4PqMHgIaCZCyix7T24DLSTKZAQoQQWdncmVnYXRlU2VydmljZRJrCgZNZXRob2QSIy5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVNZXNzYWdlGiMucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlTWVzc2FnZSIXysiWOxISEE1ldGhvZEFubm90YXRpb24aGMr7jjsTEhFTZXJ2aWNlQW5ub3RhdGlvbjo8CglmaWxlX29wdDESHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMYjp3YAyABKARSCGZpbGVPcHQxOkUKDG1lc3NhZ2Vfb3B0MRIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxicrdgDIAEoBVILbWVzc2FnZU9wdDE6PwoKZmllbGRfb3B0MRIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMYiLzYAyABKAZSCWZpZWxkT3B0MTo/CgpvbmVvZl9vcHQxEh0uZ29vZ2xlLnByb3RvYnVmLk9uZW9mT3B0aW9ucxjPtdgDIAEoBVIJb25lb2ZPcHQxOjwKCWVudW1fb3B0MRIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9ucxjontkDIAEoD1IIZW51bU9wdDE6SwoPZW51bV92YWx1ZV9vcHQxEiEuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZU9wdGlvbnMY5qBfIAEoBVINZW51bVZhbHVlT3B0MTpFCgxzZXJ2aWNlX29wdDESHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMYorbhAyABKBJSC3NlcnZpY2VPcHQxOmEKC21ldGhvZF9vcHQxEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYrM/hAyABKA4yHS5wcm90b2J1Zl91bml0dGVzdC5NZXRob2RPcHQxUgptZXRob2RPcHQxOj0KCGJvb2xfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGOqr1gMgASgIUgdib29sT3B0Oj8KCWludDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjtqNYDIAEoBVIIaW50MzJPcHQ6PwoJaW50NjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGMan1gMgASgDUghpbnQ2NE9wdDpBCgp1aW50MzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGLCi1gMgASgNUgl1aW50MzJPcHQ6QQoKdWludDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjfjtYDIAEoBFIJdWludDY0T3B0OkEKCnNpbnQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYwIjWAyABKBFSCXNpbnQzMk9wdDpBCgpzaW50NjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGP+C1gMgASgSUglzaW50NjRPcHQ6QwoLZml4ZWQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY0/7VAyABKAdSCmZpeGVkMzJPcHQ6QwoLZml4ZWQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY4v3VAyABKAZSCmZpeGVkNjRPcHQ6RQoMc2ZpeGVkMzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGNXx1QMgASgPUgtzZml4ZWQzMk9wdDpFCgxzZml4ZWQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY44rVAyABKBBSC3NmaXhlZDY0T3B0Oj8KCWZsb2F0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxj+u9QDIAEoAlIIZmxvYXRPcHQ6QQoKZG91YmxlX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjNq9QDIAEoAVIJZG91YmxlT3B0OkEKCnN0cmluZ19vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYxavUAyABKAlSCXN0cmluZ09wdDo/CglieXRlc19vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYlqvUAyABKAxSCGJ5dGVzT3B0OnkKCGVudW1fb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGJGr1AMgASgOMjoucHJvdG9idWZfdW5pdHRlc3QuRHVtbXlNZXNzYWdlQ29udGFpbmluZ0VudW0uVGVzdEVudW1UeXBlUgdlbnVtT3B0OoABChBtZXNzYWdlX3R5cGVfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGK/y0wMgASgLMjIucHJvdG9idWZfdW5pdHRlc3QuRHVtbXlNZXNzYWdlSW52YWxpZEFzT3B0aW9uVHlwZVIObWVzc2FnZVR5cGVPcHQ6bAoMY29tcGxleF9vcHQxEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGKTc0gMgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUxUgtjb21wbGV4T3B0MTpsCgxjb21wbGV4X29wdDISHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY1Y/SAyABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTJSC2NvbXBsZXhPcHQyOmwKDGNvbXBsZXhfb3B0MxIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjvi9IDIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlM1ILY29tcGxleE9wdDM6VwoHZmlsZW9wdBIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9ucxjP3bAHIAEoCzIcLnByb3RvYnVmX3VuaXR0ZXN0LkFnZ3JlZ2F0ZVIHZmlsZW9wdDpYCgZtc2dvcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYmOqwByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSBm1zZ29wdDpaCghmaWVsZG9wdBIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMYnvSwByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSCGZpZWxkb3B0OlcKB2VudW1vcHQSHC5nb29nbGUucHJvdG9idWYuRW51bU9wdGlvbnMY0oKxByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSB2VudW1vcHQ6YgoKZW51bXZhbG9wdBIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zGMmfsQcgASgLMhwucHJvdG9idWZfdW5pdHRlc3QuQWdncmVnYXRlUgplbnVtdmFsb3B0OmAKCnNlcnZpY2VvcHQSHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMYue+xByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSCnNlcnZpY2VvcHQ6XQoJbWV0aG9kb3B0Eh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYiemyByABKAsyHC5wcm90b2J1Zl91bml0dGVzdC5BZ2dyZWdhdGVSCW1ldGhvZG9wdEJVqgIaVW5pdFRlc3QuSXNzdWVzLlRlc3RQcm90b3Pw6MEd6q3A5ST67IU7KghkEg5GaWxlQW5ub3RhdGlvbhoWEhROZXN0ZWRGaWxlQW5ub3RhdGlvbkq5UQoHEgUrAOcCAQr2EAoBDBIDKwASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoy0wEgQXV0aG9yOiBiZW5qeUBnb29nbGUuY29tIChCZW5qeSBXZWluYmVyZ2VyKQogIEJhc2VkIG9uIG9yaWdpbmFsIFByb3RvY29sIEJ1ZmZlcnMgZGVzaWduIGJ5CiAgU2FuamF5IEdoZW1hd2F0LCBKZWZmIERlYW4sIGFuZCBvdGhlcnMuCgogQSBwcm90byBmaWxlIHVzZWQgdG8gdGVzdCB0aGUgImN1c3RvbSBvcHRpb25zIiBmZWF0dXJlIG9mIGdvb2dsZS5wcm90b2J1Zi4KMtECIFRoaXMgZmlsZSBpcyBiYXNlZCBvbiB1bml0dGVzdF9jdXN0b21fb3B0aW9ucy5wcm90byBpbgogc3JjL2dvb2dsZS9wcm90b2J1ZiwgYnV0IGlzIG1vZGlmaWVkIGZvciBwcm90bzMuIEl0IGNvdWxkCiBwb3RlbnRpYWxseSBiZSBtb3ZlZCBpbnRvIHNyYy9nb29nbGUvcHJvdG9idWYsIGJ1dCBjdXJyZW50bHkgQyMKIGlzIHRoZSBvbmx5IGxhbmd1YWdlIHRoYXQgcmVhbGx5IG5lZWRzIGl0LCBhcyB3ZSBkb24ndCBzdXBwb3J0CiBwcm90bzIgc3ludGF4LiBJdCdzIGN1dCBkb3duIHNpZ25pZmljYW50bHkgYXMgcHJvdG8zIG9ubHkgc3VwcG9ydHMKIGV4dGVuc2lvbnMgZm9yIG9wdGlvbnMuCgoICgEIEgMuACAKNQoFCI6d2AMSAy4AIBonIEEgY3VzdG9tIGZpbGUgb3B0aW9uIChkZWZpbmVkIGJlbG93KS4KCgkKAgMAEgMwACoKoAEKAQISAzQAGhqVASBXZSBkb24ndCBwdXQgdGhpcyBpbiBhIHBhY2thZ2Ugd2l0aGluIHByb3RvMiBiZWNhdXNlIHdlIG5lZWQgdG8gbWFrZSBzdXJlCiB0aGF0IHRoZSBnZW5lcmF0ZWQgY29kZSBkb2Vzbid0IGRlcGVuZCBvbiBiZWluZyBpbiB0aGUgcHJvdG8yIG5hbWVzcGFjZS4KCggKAQgSAzUANwoJCgIIJRIDNQA3Cj4KAQcSBDkAOwEyMyBTb21lIHNpbXBsZSB0ZXN0IGN1c3RvbSBvcHRpb25zIG9mIHZhcmlvdXMgdHlwZXMuCgoJCgIHABIDOgIdCgoKAwcAAhIDOQciCgoKAwcABRIDOgIICgoKAwcAARIDOgkSCgoK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Y2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoyKCBBdXRob3I6IGxpdWppc2lAZ29vZ2xlLmNvbSAoUGhlcmwgTGl1KQoKCAoBAhIDIgAoCggKAQgSAyQAPgoJCgIIJRIDJAA+CgoKAgQAEgQmACgBCgoKAwQAARIDJggbCgsKBAQAAgASAycCFwoMCgUEAAIABBIDJwIKCgwKBQQAAgAFEgMnCxAKDAoFBAACAAESAycREgoMCgUEAAIAAxIDJxUWCvkWCiNjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydC5wcm90bxIfcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMhoqY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9pbXBvcnRfcHVibGljLnByb3RvIh0KDUltcG9ydE1lc3NhZ2USDAoBZBgBIAEoBVIBZCo8CgpJbXBvcnRFbnVtEg4KCklNUE9SVF9GT08QBxIOCgpJTVBPUlRfQkFSEAgSDgoKSU1QT1JUX0JBWhAJKjEKEEltcG9ydEVudW1Gb3JNYXASCwoHVU5LTk9XThAAEgcKA0ZPTxABEgcKA0JBUhACQilIAfgBAaoCIUdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zLlByb3RvMkrHFAoGEgQkAEIBCpgOCgEMEgMkABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLJASBBdXRob3I6IGtlbnRvbkBnb29nbGUuY29tIChLZW50b24gVmFyZGEpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBBIHByb3RvIGZpbGUgd2hpY2ggaXMgaW1wb3J0ZWQgYnkgdW5pdHRlc3QucHJvdG8gdG8gdGVzdCBpbXBvcnRpbmcuCgr1AQoBAhIDKgAoGuoBIFdlIGRvbid0IHB1dCB0aGlzIGluIGEgcGFja2FnZSB3aXRoaW4gcHJvdG8yIGJlY2F1c2Ugd2UgbmVlZCB0byBtYWtlIHN1cmUKIHRoYXQgdGhlIGdlbmVyYXRlZCBjb2RlIGRvZXNuJ3QgZGVwZW5kIG9uIGJlaW5nIGluIHRoZSBwcm90bzIgbmFtZXNwYWNlLgogSW4gdGVzdF91dGlsLmggd2UgZG8KICJ1c2luZyBuYW1lc3BhY2UgdW5pdHRlc3RfaW1wb3J0ID0gcHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0Ii4KCggKAQgSAywAHAoJCgIICRIDLAAcCggKAQgSAy0AHwoJCgIIHxIDLQAfCggKAQgSAy4APgoJCgIIJRIDLgA+Ch8KAgMAEgMxADsaFCBUZXN0IHB1YmxpYyBpbXBvcnQKCgkKAgoAEgMxBw0KCgoCBAASBDMANQEKCgoDBAABEgMzCBUKCwoEBAACABIDNAIXCgwKBQQAAgAEEgM0AgoKDAoFBAACAAUSAzQLEAoMCgUEAAIAARIDNBESCgwKBQQAAgADEgM0FRYKCgoCBQASBDcAOwEKCgoDBQABEgM3BQ8KCwoEBQACABIDOAIRCgwKBQUAAgABEgM4AgwKDAoFBQACAAISAzgPEAoLCgQFAAIBEgM5AhEKDAoFBQACAQESAzkCDAoMCgUFAAIBAhIDOQ8QCgsKBAUAAgISAzoCEQoMCgUFAAICARIDOgIMCgwKBQUAAgICEgM6DxAKSAoCBQESBD4AQgEaPCBUbyB1c2UgYW4gZW51bSBpbiBhIG1hcCwgaXQgbXVzdCBoYXMgdGhlIGZpcnN0IHZhbHVlIGFzIDAuCgoKCgMFAQESAz4FFQoLCgQFAQIAEgM/Ag4KDAoFBQECAAESAz8CCQoMCgUFAQIAAhIDPwwNCgsKBAUBAgESA0ACCgoMCgUFAQIBARIDQAIFCgwKBQUBAgECEgNACAkKCwoEBQECAhIDQQIKCgwKBQUBAgIBEgNBAgUKDAoFBQECAgISA0EICVAACrrTBQocY3NoYXJwL3Byb3Rvcy91bml0dGVzdC5wcm90bxIYcHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yGiNjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2ltcG9ydC5wcm90byKRJAoMVGVzdEFsbFR5cGVzEiUKDm9wdGlvbmFsX2ludDMyGAEgASgFUg1vcHRpb25hbEludDMyEiUKDm9wdGlvbmFsX2ludDY0GAIgASgDUg1vcHRpb25hbEludDY0EicKD29wdGlvbmFsX3VpbnQzMhgDIAEoDVIOb3B0aW9uYWxVaW50MzISJwoPb3B0aW9uYWxfdWludDY0GAQgASgEUg5vcHRpb25hbFVpbnQ2NBInCg9vcHRpb25hbF9zaW50MzIYBSABKBFSDm9wdGlvbmFsU2ludDMyEicKD29wdGlvbmFsX3NpbnQ2NBgGIAEoElIOb3B0aW9uYWxTaW50NjQSKQoQb3B0aW9uYWxfZml4ZWQzMhgHIAEoB1IPb3B0aW9uYWxGaXhlZDMyEikKEG9wdGlvbmFsX2ZpeGVkNjQYCCABKAZSD29wdGlvbmFsRml4ZWQ2NBIrChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoD1IQb3B0aW9uYWxTZml4ZWQzMhIrChFvcHRpb25hbF9zZml4ZWQ2NBgKIAEoEFIQb3B0aW9uYWxTZml4ZWQ2NBIlCg5vcHRpb25hbF9mbG9hdBgLIAEoAlINb3B0aW9uYWxGbG9hdBInCg9vcHRpb25hbF9kb3VibGUYDCABKAFSDm9wdGlvbmFsRG91YmxlEiMKDW9wdGlvbmFsX2Jvb2wYDSABKAhSDG9wdGlvbmFsQm9vbBInCg9vcHRpb25hbF9zdHJpbmcYDiABKAlSDm9wdGlvbmFsU3RyaW5nEiUKDm9wdGlvbmFsX2J5dGVzGA8gASgMUg1vcHRpb25hbEJ5dGVzEloKDW9wdGlvbmFsZ3JvdXAYECABKAoyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk9wdGlvbmFsR3JvdXBSDW9wdGlvbmFsZ3JvdXASbAoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSFW9wdGlvbmFsTmVzdGVkTWVzc2FnZRJiChhvcHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSFm9wdGlvbmFsRm9yZWlnbk1lc3NhZ2USZgoXb3B0aW9uYWxfaW1wb3J0X21lc3NhZ2UYFCABKAsyLi5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydE1lc3NhZ2VSFW9wdGlvbmFsSW1wb3J0TWVzc2FnZRJjChRvcHRpb25hbF9uZXN0ZWRfZW51bRgVIAEoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVISb3B0aW9uYWxOZXN0ZWRFbnVtElkKFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVITb3B0aW9uYWxGb3JlaWduRW51bRJdChRvcHRpb25hbF9pbXBvcnRfZW51bRgXIAEoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bVISb3B0aW9uYWxJbXBvcnRFbnVtEjYKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAJSE29wdGlvbmFsU3RyaW5nUGllY2USJwoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAFSDG9wdGlvbmFsQ29yZBJ5Ch5vcHRpb25hbF9wdWJsaWNfaW1wb3J0X21lc3NhZ2UYGiABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLlB1YmxpY0ltcG9ydE1lc3NhZ2VSG29wdGlvbmFsUHVibGljSW1wb3J0TWVzc2FnZRJsChVvcHRpb25hbF9sYXp5X21lc3NhZ2UYGyABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBUhNvcHRpb25hbExhenlNZXNzYWdlEiUKDnJlcGVhdGVkX2ludDMyGB8gAygFUg1yZXBlYXRlZEludDMyEiUKDnJlcGVhdGVkX2ludDY0GCAgAygDUg1yZXBlYXRlZEludDY0EicKD3JlcGVhdGVkX3VpbnQzMhghIAMoDVIOcmVwZWF0ZWRVaW50MzISJwoPcmVwZWF0ZWRfdWludDY0GCIgAygEUg5yZXBlYXRlZFVpbnQ2NBInCg9yZXBlYXRlZF9zaW50MzIYIyADKBFSDnJlcGVhdGVkU2ludDMyEicKD3JlcGVhdGVkX3NpbnQ2NBgkIAMoElIOcmVwZWF0ZWRTaW50NjQSKQoQcmVwZWF0ZWRfZml4ZWQzMhglIAMoB1IPcmVwZWF0ZWRGaXhlZDMyEikKEHJlcGVhdGVkX2ZpeGVkNjQYJiADKAZSD3JlcGVhdGVkRml4ZWQ2NBIrChFyZXBlYXRlZF9zZml4ZWQzMhgnIAMoD1IQcmVwZWF0ZWRTZml4ZWQzMhIrChFyZXBlYXRlZF9zZml4ZWQ2NBgoIAMoEFIQcmVwZWF0ZWRTZml4ZWQ2NBIlCg5yZXBlYXRlZF9mbG9hdBgpIAMoAlINcmVwZWF0ZWRGbG9hdBInCg9yZXBlYXRlZF9kb3VibGUYKiADKAFSDnJlcGVhdGVkRG91YmxlEiMKDXJlcGVhdGVkX2Jvb2wYKyADKAhSDHJlcGVhdGVkQm9vbBInCg9yZXBlYXRlZF9zdHJpbmcYLCADKAlSDnJlcGVhdGVkU3RyaW5nEiUKDnJlcGVhdGVkX2J5dGVzGC0gAygMUg1yZXBlYXRlZEJ5dGVzEloKDXJlcGVhdGVkZ3JvdXAYLiADKAoyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLlJlcGVhdGVkR3JvdXBSDXJlcGVhdGVkZ3JvdXASbAoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSFXJlcGVhdGVkTmVzdGVkTWVzc2FnZRJiChhyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2UYMSADKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSFnJlcGVhdGVkRm9yZWlnbk1lc3NhZ2USZgoXcmVwZWF0ZWRfaW1wb3J0X21lc3NhZ2UYMiADKAsyLi5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydE1lc3NhZ2VSFXJlcGVhdGVkSW1wb3J0TWVzc2FnZRJjChRyZXBlYXRlZF9uZXN0ZWRfZW51bRgzIAMoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVIScmVwZWF0ZWROZXN0ZWRFbnVtElkKFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVITcmVwZWF0ZWRGb3JlaWduRW51bRJdChRyZXBlYXRlZF9pbXBvcnRfZW51bRg1IAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bVIScmVwZWF0ZWRJbXBvcnRFbnVtEjYKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAJSE3JlcGVhdGVkU3RyaW5nUGllY2USJwoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAFSDHJlcGVhdGVkQ29yZBJsChVyZXBlYXRlZF9sYXp5X21lc3NhZ2UYOSADKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VCAigBUhNyZXBlYXRlZExhenlNZXNzYWdlEicKDWRlZmF1bHRfaW50MzIYPSABKAU6AjQxUgxkZWZhdWx0SW50MzISJwoNZGVmYXVsdF9pbnQ2NBg+IAEoAzoCNDJSDGRlZmF1bHRJbnQ2NBIpCg5kZWZhdWx0X3VpbnQzMhg/IAEoDToCNDNSDWRlZmF1bHRVaW50MzISKQoOZGVmYXVsdF91aW50NjQYQCABKAQ6AjQ0Ug1kZWZhdWx0VWludDY0EioKDmRlZmF1bHRfc2ludDMyGEEgASgROgMtNDVSDWRlZmF1bHRTaW50MzISKQoOZGVmYXVsdF9zaW50NjQYQiABKBI6AjQ2Ug1kZWZhdWx0U2ludDY0EisKD2RlZmF1bHRfZml4ZWQzMhhDIAEoBzoCNDdSDmRlZmF1bHRGaXhlZDMyEisKD2RlZmF1bHRfZml4ZWQ2NBhEIAEoBjoCNDhSDmRlZmF1bHRGaXhlZDY0Ei0KEGRlZmF1bHRfc2ZpeGVkMzIYRSABKA86AjQ5Ug9kZWZhdWx0U2ZpeGVkMzISLgoQZGVmYXVsdF9zZml4ZWQ2NBhGIAEoEDoDLTUwUg9kZWZhdWx0U2ZpeGVkNjQSKQoNZGVmYXVsdF9mbG9hdBhHIAEoAjoENTEuNVIMZGVmYXVsdEZsb2F0EiwKDmRlZmF1bHRfZG91YmxlGEggASgBOgU1MjAwMFINZGVmYXVsdERvdWJsZRInCgxkZWZhdWx0X2Jvb2wYSSABKAg6BHRydWVSC2RlZmF1bHRCb29sEiwKDmRlZmF1bHRfc3RyaW5nGEogASgJOgVoZWxsb1INZGVmYXVsdFN0cmluZxIqCg1kZWZhdWx0X2J5dGVzGEsgASgMOgV3b3JsZFIMZGVmYXVsdEJ5dGVzEmYKE2RlZmF1bHRfbmVzdGVkX2VudW0YUSABKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06A0JBUlIRZGVmYXVsdE5lc3RlZEVudW0SZAoUZGVmYXVsdF9mb3JlaWduX2VudW0YUiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW06C0ZPUkVJR05fQkFSUhJkZWZhdWx0Rm9yZWlnbkVudW0SZwoTZGVmYXVsdF9pbXBvcnRfZW51bRhTIAEoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bToKSU1QT1JUX0JBUlIRZGVmYXVsdEltcG9ydEVudW0SOQoUZGVmYXVsdF9zdHJpbmdfcGllY2UYVCABKAk6A2FiY0ICCAJSEmRlZmF1bHRTdHJpbmdQaWVjZRIqCgxkZWZhdWx0X2NvcmQYVSABKAk6AzEyM0ICCAFSC2RlZmF1bHRDb3JkEiMKDG9uZW9mX3VpbnQzMhhvIAEoDUgAUgtvbmVvZlVpbnQzMhJoChRvbmVvZl9uZXN0ZWRfbWVzc2FnZRhwIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZUgAUhJvbmVvZk5lc3RlZE1lc3NhZ2USIwoMb25lb2Zfc3RyaW5nGHEgASgJSABSC29uZW9mU3RyaW5nEiEKC29uZW9mX2J5dGVzGHIgASgMSABSCm9uZW9mQnl0ZXMaHwoNTmVzdGVkTWVzc2FnZRIOCgJiYhgBIAEoBVICYmIaHQoNT3B0aW9uYWxHcm91cBIMCgFhGBEgASgFUgFhGh0KDVJlcGVhdGVkR3JvdXASDAoBYRgvIAEoBVIBYSI5CgpOZXN0ZWRFbnVtEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADEhAKA05FRxD///////////8BQg0KC29uZW9mX2ZpZWxkIu8BChJOZXN0ZWRUZXN0QWxsVHlwZXMSQgoFY2hpbGQYASABKAsyLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuTmVzdGVkVGVzdEFsbFR5cGVzUgVjaGlsZBJACgdwYXlsb2FkGAIgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IHcGF5bG9hZBJTCg5yZXBlYXRlZF9jaGlsZBgDIAMoCzIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5OZXN0ZWRUZXN0QWxsVHlwZXNSDXJlcGVhdGVkQ2hpbGQilgEKFFRlc3REZXByZWNhdGVkRmllbGRzEi0KEGRlcHJlY2F0ZWRfaW50MzIYASABKAVCAhgBUg9kZXByZWNhdGVkSW50MzISPwoZZGVwcmVjYXRlZF9pbnQzMl9pbl9vbmVvZhgCIAEoBUICGAFIAFIWZGVwcmVjYXRlZEludDMySW5PbmVvZkIOCgxvbmVvZl9maWVsZHMiGwoVVGVzdERlcHJlY2F0ZWRNZXNzYWdlOgIYASIsCg5Gb3JlaWduTWVzc2FnZRIMCgFjGAEgASgFUgFjEgwKAWQYAiABKAVSAWQiMAoSVGVzdFJlc2VydmVkRmllbGRzSgQIAhADSgQIDxAQSgQICRAMUgNiYXJSA2JheiIdChFUZXN0QWxsRXh0ZW5zaW9ucyoICAEQgICAgAIiJwoXT3B0aW9uYWxHcm91cF9leHRlbnNpb24SDAoBYRgRIAEoBVIBYSInChdSZXBlYXRlZEdyb3VwX2V4dGVuc2lvbhIMCgFhGC8gASgFUgFhIt4BCglUZXN0R3JvdXASVwoNb3B0aW9uYWxncm91cBgQIAEoCjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0R3JvdXAuT3B0aW9uYWxHcm91cFINb3B0aW9uYWxncm91cBJZChVvcHRpb25hbF9mb3JlaWduX2VudW0YFiABKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SE29wdGlvbmFsRm9yZWlnbkVudW0aHQoNT3B0aW9uYWxHcm91cBIMCgFhGBEgASgFUgFhIh4KElRlc3RHcm91cEV4dGVuc2lvbioICAEQgICAgAIiuAQKE1Rlc3ROZXN0ZWRFeHRlbnNpb24aJwoXT3B0aW9uYWxHcm91cF9leHRlbnNpb24SDAoBYRgRIAEoBVIBYTJGCgR0ZXN0EisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGOoHIAEoCToEdGVzdFIEdGVzdDJkChduZXN0ZWRfc3RyaW5nX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxjrByABKAlSFW5lc3RlZFN0cmluZ0V4dGVuc2lvbjKsAQoXb3B0aW9uYWxncm91cF9leHRlbnNpb24SLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEdyb3VwRXh0ZW5zaW9uGBAgASgKMkUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3ROZXN0ZWRFeHRlbnNpb24uT3B0aW9uYWxHcm91cF9leHRlbnNpb25SFm9wdGlvbmFsZ3JvdXBFeHRlbnNpb24ymgEKH29wdGlvbmFsX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEdyb3VwRXh0ZW5zaW9uGBYgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhxvcHRpb25hbEZvcmVpZ25FbnVtRXh0ZW5zaW9uIpAICgxUZXN0UmVxdWlyZWQSDAoBYRgBIAIoBVIBYRIWCgZkdW1teTIYAiABKAVSBmR1bW15MhIMCgFiGAMgAigFUgFiEhYKBmR1bW15NBgEIAEoBVIGZHVtbXk0EhYKBmR1bW15NRgFIAEoBVIGZHVtbXk1EhYKBmR1bW15NhgGIAEoBVIGZHVtbXk2EhYKBmR1bW15NxgHIAEoBVIGZHVtbXk3EhYKBmR1bW15OBgIIAEoBVIGZHVtbXk4EhYKBmR1bW15ORgJIAEoBVIGZHVtbXk5EhgKB2R1bW15MTAYCiABKAVSB2R1bW15MTASGAoHZHVtbXkxMRgLIAEoBVIHZHVtbXkxMRIYCgdkdW1teTEyGAwgASgFUgdkdW1teTEyEhgKB2R1bW15MTMYDSABKAVSB2R1bW15MTMSGAoHZHVtbXkxNBgOIAEoBVIHZHVtbXkxNBIYCgdkdW1teTE1GA8gASgFUgdkdW1teTE1EhgKB2R1bW15MTYYECABKAVSB2R1bW15MTYSGAoHZHVtbXkxNxgRIAEoBVIHZHVtbXkxNxIYCgdkdW1teTE4GBIgASgFUgdkdW1teTE4EhgKB2R1bW15MTkYEyABKAVSB2R1bW15MTkSGAoHZHVtbXkyMBgUIAEoBVIHZHVtbXkyMBIYCgdkdW1teTIxGBUgASgFUgdkdW1teTIxEhgKB2R1bW15MjIYFiABKAVSB2R1bW15MjISGAoHZHVtbXkyMxgXIAEoBVIHZHVtbXkyMxIYCgdkdW1teTI0GBggASgFUgdkdW1teTI0EhgKB2R1bW15MjUYGSABKAVSB2R1bW15MjUSGAoHZHVtbXkyNhgaIAEoBVIHZHVtbXkyNhIYCgdkdW1teTI3GBsgASgFUgdkdW1teTI3EhgKB2R1bW15MjgYHCABKAVSB2R1bW15MjgSGAoHZHVtbXkyORgdIAEoBVIHZHVtbXkyORIYCgdkdW1teTMwGB4gASgFUgdkdW1teTMwEhgKB2R1bW15MzEYHyABKAVSB2R1bW15MzESGAoHZHVtbXkzMhggIAEoBVIHZHVtbXkzMhIMCgFjGCEgAigFUgFjMmwKBnNpbmdsZRIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxjoByABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUgZzaW5nbGUyagoFbXVsdGkSKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMY6QcgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIFbXVsdGki0QEKE1Rlc3RSZXF1aXJlZEZvcmVpZ24SUQoQb3B0aW9uYWxfbWVzc2FnZRgBIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSD29wdGlvbmFsTWVzc2FnZRJRChByZXBlYXRlZF9tZXNzYWdlGAIgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIPcmVwZWF0ZWRNZXNzYWdlEhQKBWR1bW15GAMgASgFUgVkdW1teSKOAgoTVGVzdFJlcXVpcmVkTWVzc2FnZRJRChBvcHRpb25hbF9tZXNzYWdlGAEgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZFIPb3B0aW9uYWxNZXNzYWdlElEKEHJlcGVhdGVkX21lc3NhZ2UYAiADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlcXVpcmVkUg9yZXBlYXRlZE1lc3NhZ2USUQoQcmVxdWlyZWRfbWVzc2FnZRgDIAIoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UmVxdWlyZWRSD3JlcXVpcmVkTWVzc2FnZSJwChFUZXN0Rm9yZWlnbk5lc3RlZBJbCg5mb3JlaWduX25lc3RlZBgBIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVINZm9yZWlnbk5lc3RlZCISChBUZXN0RW1wdHlNZXNzYWdlIioKHlRlc3RFbXB0eU1lc3NhZ2VXaXRoRXh0ZW5zaW9ucyoICAEQgICAgAIiNwobVGVzdE11bHRpcGxlRXh0ZW5zaW9uUmFuZ2VzKgQIKhArKgYIryAQlCEqCgiAgAQQgICAgAIiOwoYVGVzdFJlYWxseUxhcmdlVGFnTnVtYmVyEgwKAWEYASABKAVSAWESEQoCYmIY////fyABKAVSAmJiImIKFFRlc3RSZWN1cnNpdmVNZXNzYWdlEjwKAWEYASABKAsyLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFJlY3Vyc2l2ZU1lc3NhZ2VSAWESDAoBaRgCIAEoBVIBaSKvAwoUVGVzdE11dHVhbFJlY3Vyc2lvbkESPgoCYmIYASABKAsyLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE11dHVhbFJlY3Vyc2lvbkJSAmJiElMKCHN1Ymdyb3VwGAIgASgKMjcucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1cnNpb25BLlN1Ykdyb3VwUghzdWJncm91cBpKCgpTdWJNZXNzYWdlEjwKAWIYASABKAsyLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE11dHVhbFJlY3Vyc2lvbkJSAWIatQEKCFN1Ykdyb3VwEloKC3N1Yl9tZXNzYWdlGAMgASgLMjkucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RNdXR1YWxSZWN1cnNpb25BLlN1Yk1lc3NhZ2VSCnN1Yk1lc3NhZ2USTQoPbm90X2luX3RoaXNfc2NjGAQgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IMbm90SW5UaGlzU2NjInsKFFRlc3RNdXR1YWxSZWN1cnNpb25CEjwKAWEYASABKAsyLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE11dHVhbFJlY3Vyc2lvbkFSAWESJQoOb3B0aW9uYWxfaW50MzIYAiABKAVSDW9wdGlvbmFsSW50MzIi8gEKEVRlc3RJc0luaXRpYWxpemVkElcKC3N1Yl9tZXNzYWdlGAEgASgLMjYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RJc0luaXRpYWxpemVkLlN1Yk1lc3NhZ2VSCnN1Yk1lc3NhZ2UagwEKClN1Yk1lc3NhZ2USWwoIc3ViZ3JvdXAYASABKAoyPy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdElzSW5pdGlhbGl6ZWQuU3ViTWVzc2FnZS5TdWJHcm91cFIIc3ViZ3JvdXAaGAoIU3ViR3JvdXASDAoBaRgCIAIoBVIBaSLUAQoSVGVzdER1cEZpZWxkTnVtYmVyEgwKAWEYASABKAVSAWESQgoDZm9vGAIgASgKMjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3REdXBGaWVsZE51bWJlci5Gb29SA2ZvbxJCCgNiYXIYAyABKAoyMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdER1cEZpZWxkTnVtYmVyLkJhclIDYmFyGhMKA0ZvbxIMCgFhGAEgASgFUgFhGhMKA0JhchIMCgFhGAEgASgFUgFhIl8KEFRlc3RFYWdlck1lc3NhZ2USSwoLc3ViX21lc3NhZ2UYASABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzQgIoAFIKc3ViTWVzc2FnZSJeCg9UZXN0TGF6eU1lc3NhZ2USSwoLc3ViX21lc3NhZ2UYASABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzQgIoAVIKc3ViTWVzc2FnZSLmAgoYVGVzdE5lc3RlZE1lc3NhZ2VIYXNCaXRzEngKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGAEgASgLMkAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3ROZXN0ZWRNZXNzYWdlSGFzQml0cy5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2UazwEKDU5lc3RlZE1lc3NhZ2USQAocbmVzdGVkbWVzc2FnZV9yZXBlYXRlZF9pbnQzMhgBIAMoBVIabmVzdGVkbWVzc2FnZVJlcGVhdGVkSW50MzISfAolbmVzdGVkbWVzc2FnZV9yZXBlYXRlZF9mb3JlaWdubWVzc2FnZRgCIAMoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIjbmVzdGVkbWVzc2FnZVJlcGVhdGVkRm9yZWlnbm1lc3NhZ2Ui1wUKF1Rlc3RDYW1lbENhc2VGaWVsZE5hbWVzEiYKDlByaW1pdGl2ZUZpZWxkGAEgASgFUg5QcmltaXRpdmVGaWVsZBIgCgtTdHJpbmdGaWVsZBgCIAEoCVILU3RyaW5nRmllbGQSQwoJRW51bUZpZWxkGAMgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUglFbnVtRmllbGQSTAoMTWVzc2FnZUZpZWxkGAQgASgLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUgxNZXNzYWdlRmllbGQSLgoQU3RyaW5nUGllY2VGaWVsZBgFIAEoCUICCAJSEFN0cmluZ1BpZWNlRmllbGQSIAoJQ29yZEZpZWxkGAYgASgJQgIIAVIJQ29yZEZpZWxkEjYKFlJlcGVhdGVkUHJpbWl0aXZlRmllbGQYByADKAVSFlJlcGVhdGVkUHJpbWl0aXZlRmllbGQSMAoTUmVwZWF0ZWRTdHJpbmdGaWVsZBgIIAMoCVITUmVwZWF0ZWRTdHJpbmdGaWVsZBJTChFSZXBlYXRlZEVudW1GaWVsZBgJIAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVIRUmVwZWF0ZWRFbnVtRmllbGQSXAoUUmVwZWF0ZWRNZXNzYWdlRmllbGQYCiADKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSFFJlcGVhdGVkTWVzc2FnZUZpZWxkEj4KGFJlcGVhdGVkU3RyaW5nUGllY2VGaWVsZBgLIAMoCUICCAJSGFJlcGVhdGVkU3RyaW5nUGllY2VGaWVsZBIwChFSZXBlYXRlZENvcmRGaWVsZBgMIAMoCUICCAFSEVJlcGVhdGVkQ29yZEZpZWxkIpUCChJUZXN0RmllbGRPcmRlcmluZ3MSGwoJbXlfc3RyaW5nGAsgASgJUghteVN0cmluZxIVCgZteV9pbnQYASABKANSBW15SW50EhkKCG15X2Zsb2F0GGUgASgCUgdteUZsb2F0EnMKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGMgBIAEoCzI6LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MuTmVzdGVkTWVzc2FnZVIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdlGi8KDU5lc3RlZE1lc3NhZ2USDgoCb28YAiABKANSAm9vEg4KAmJiGAEgASgFUgJiYioECAIQCyoECAwQZSLIAQoXVGVzdEV4dGVuc2lvbk9yZGVyaW5nczESGwoJbXlfc3RyaW5nGAEgASgJUghteVN0cmluZzKPAQoTdGVzdF9leHRfb3JkZXJpbmdzMRIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYDSABKAsyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEV4dGVuc2lvbk9yZGVyaW5nczFSEXRlc3RFeHRPcmRlcmluZ3MxIqsDChdUZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMhIbCglteV9zdHJpbmcYASABKAlSCG15U3RyaW5nGuABChdUZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMxIbCglteV9zdHJpbmcYASABKAlSCG15U3RyaW5nMqcBChN0ZXN0X2V4dF9vcmRlcmluZ3MzEiwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RGaWVsZE9yZGVyaW5ncxgOIAEoCzJJLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RXh0ZW5zaW9uT3JkZXJpbmdzMi5UZXN0RXh0ZW5zaW9uT3JkZXJpbmdzM1IRdGVzdEV4dE9yZGVyaW5nczMyjwEKE3Rlc3RfZXh0X29yZGVyaW5nczISLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzGAwgASgLMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RFeHRlbnNpb25PcmRlcmluZ3MyUhF0ZXN0RXh0T3JkZXJpbmdzMiKvCgoYVGVzdEV4dHJlbWVEZWZhdWx0VmFsdWVzEk0KDWVzY2FwZWRfYnl0ZXMYASABKAw6KFwwMDBcMDAxXDAwN1wwMTBcMDE0XG5cclx0XDAxM1xcXCdcIlwzNzZSDGVzY2FwZWRCeXRlcxItCgxsYXJnZV91aW50MzIYAiABKA06CjQyOTQ5NjcyOTVSC2xhcmdlVWludDMyEjcKDGxhcmdlX3VpbnQ2NBgDIAEoBDoUMTg0NDY3NDQwNzM3MDk1NTE2MTVSC2xhcmdlVWludDY0EiwKC3NtYWxsX2ludDMyGAQgASgFOgstMjE0NzQ4MzY0N1IKc21hbGxJbnQzMhI1CgtzbWFsbF9pbnQ2NBgFIAEoAzoULTkyMjMzNzIwMzY4NTQ3NzU4MDdSCnNtYWxsSW50NjQSOQoScmVhbGx5X3NtYWxsX2ludDMyGBUgASgFOgstMjE0NzQ4MzY0OFIQcmVhbGx5U21hbGxJbnQzMhJCChJyZWFsbHlfc21hbGxfaW50NjQYFiABKAM6FC05MjIzMzcyMDM2ODU0Nzc1ODA4UhByZWFsbHlTbWFsbEludDY0EiQKC3V0Zjhfc3RyaW5nGAYgASgJOgPhiLRSCnV0ZjhTdHJpbmcSIAoKemVyb19mbG9hdBgHIAEoAjoBMFIJemVyb0Zsb2F0Eh4KCW9uZV9mbG9hdBgIIAEoAjoBMVIIb25lRmxvYXQSJAoLc21hbGxfZmxvYXQYCSABKAI6AzEuNVIKc21hbGxGbG9hdBIwChJuZWdhdGl2ZV9vbmVfZmxvYXQYCiABKAI6Ai0xUhBuZWdhdGl2ZU9uZUZsb2F0EisKDm5lZ2F0aXZlX2Zsb2F0GAsgASgCOgQtMS41Ug1uZWdhdGl2ZUZsb2F0EiYKC2xhcmdlX2Zsb2F0GAwgASgCOgUyZSswOFIKbGFyZ2VGbG9hdBI4ChRzbWFsbF9uZWdhdGl2ZV9mbG9hdBgNIAEoAjoGLThlLTI4UhJzbWFsbE5lZ2F0aXZlRmxvYXQSIgoKaW5mX2RvdWJsZRgOIAEoAToDaW5mUglpbmZEb3VibGUSKgoObmVnX2luZl9kb3VibGUYDyABKAE6BC1pbmZSDG5lZ0luZkRvdWJsZRIiCgpuYW5fZG91YmxlGBAgASgBOgNuYW5SCW5hbkRvdWJsZRIgCglpbmZfZmxvYXQYESABKAI6A2luZlIIaW5mRmxvYXQSKAoNbmVnX2luZl9mbG9hdBgSIAEoAjoELWluZlILbmVnSW5mRmxvYXQSIAoJbmFuX2Zsb2F0GBMgASgCOgNuYW5SCG5hbkZsb2F0EjgKDGNwcF90cmlncmFwaBgUIAEoCToVPyA/ID8/ID8/ID8/PyA/Py8gPz8tUgtjcHBUcmlncmFwaBIwChBzdHJpbmdfd2l0aF96ZXJvGBcgASgJOgZoZWwAbG9SDnN0cmluZ1dpdGhaZXJvEjEKD2J5dGVzX3dpdGhfemVybxgYIAEoDDoJd29yXDAwMGxkUg1ieXRlc1dpdGhaZXJvEj0KFnN0cmluZ19waWVjZV93aXRoX3plcm8YGSABKAk6BGFiAGNCAggCUhNzdHJpbmdQaWVjZVdpdGhaZXJvEi4KDmNvcmRfd2l0aF96ZXJvGBogASgJOgQxMgAzQgIIAVIMY29yZFdpdGhaZXJvEjkKEnJlcGxhY2VtZW50X3N0cmluZxgbIAEoCToKJHt1bmtub3dufVIRcmVwbGFjZW1lbnRTdHJpbmciXgoRU3BhcnNlRW51bU1lc3NhZ2USSQoLc3BhcnNlX2VudW0YASABKA4yKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFNwYXJzZUVudW1SCnNwYXJzZUVudW0iHwoJT25lU3RyaW5nEhIKBGRhdGEYASABKAlSBGRhdGEiIAoKTW9yZVN0cmluZxISCgRkYXRhGAEgAygJUgRkYXRhIh4KCE9uZUJ5dGVzEhIKBGRhdGEYASABKAxSBGRhdGEiHwoJTW9yZUJ5dGVzEhIKBGRhdGEYASADKAxSBGRhdGEiIgoMSW50MzJNZXNzYWdlEhIKBGRhdGEYASABKAVSBGRhdGEiIwoNVWludDMyTWVzc2FnZRISCgRkYXRhGAEgASgNUgRkYXRhIiIKDEludDY0TWVzc2FnZRISCgRkYXRhGAEgASgDUgRkYXRhIiMKDVVpbnQ2NE1lc3NhZ2USEgoEZGF0YRgBIAEoBFIEZGF0YSIhCgtCb29sTWVzc2FnZRISCgRkYXRhGAEgASgIUgRkYXRhIo0CCglUZXN0T25lb2YSGQoHZm9vX2ludBgBIAEoBUgAUgZmb29JbnQSHwoKZm9vX3N0cmluZxgCIAEoCUgAUglmb29TdHJpbmcSSQoLZm9vX21lc3NhZ2UYAyABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzSABSCmZvb01lc3NhZ2USSgoIZm9vZ3JvdXAYBCABKAoyLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mLkZvb0dyb3VwSABSCGZvb2dyb3VwGiYKCEZvb0dyb3VwEgwKAWEYBSABKAVSAWESDAoBYhgGIAEoCVIBYkIFCgNmb28ipAIKHFRlc3RPbmVvZkJhY2t3YXJkc0NvbXBhdGlibGUSFwoHZm9vX2ludBgBIAEoBVIGZm9vSW50Eh0KCmZvb19zdHJpbmcYAiABKAlSCWZvb1N0cmluZxJHCgtmb29fbWVzc2FnZRgDIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSCmZvb01lc3NhZ2USWwoIZm9vZ3JvdXAYBCABKAoyPy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mQmFja3dhcmRzQ29tcGF0aWJsZS5Gb29Hcm91cFIIZm9vZ3JvdXAaJgoIRm9vR3JvdXASDAoBYRgFIAEoBVIBYRIMCgFiGAYgASgJUgFiIpAICgpUZXN0T25lb2YyEhkKB2Zvb19pbnQYASABKAVIAFIGZm9vSW50Eh8KCmZvb19zdHJpbmcYAiABKAlIAFIJZm9vU3RyaW5nEh8KCGZvb19jb3JkGAMgASgJQgIIAUgAUgdmb29Db3JkEi4KEGZvb19zdHJpbmdfcGllY2UYBCABKAlCAggCSABSDmZvb1N0cmluZ1BpZWNlEh0KCWZvb19ieXRlcxgFIAEoDEgAUghmb29CeXRlcxJMCghmb29fZW51bRgGIAEoDjIvLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2YyLk5lc3RlZEVudW1IAFIHZm9vRW51bRJVCgtmb29fbWVzc2FnZRgHIAEoCzIyLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2YyLk5lc3RlZE1lc3NhZ2VIAFIKZm9vTWVzc2FnZRJLCghmb29ncm91cBgIIAEoCjItLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2YyLkZvb0dyb3VwSABSCGZvb2dyb3VwEmIKEGZvb19sYXp5X21lc3NhZ2UYCyABKAsyMi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdE9uZW9mMi5OZXN0ZWRNZXNzYWdlQgIoAUgAUg5mb29MYXp5TWVzc2FnZRIcCgdiYXJfaW50GAwgASgFOgE1SAFSBmJhckludBInCgpiYXJfc3RyaW5nGA0gASgJOgZTVFJJTkdIAVIJYmFyU3RyaW5nEiUKCGJhcl9jb3JkGA4gASgJOgRDT1JEQgIIAUgBUgdiYXJDb3JkEjYKEGJhcl9zdHJpbmdfcGllY2UYDyABKAk6BlNQSUVDRUICCAJIAVIOYmFyU3RyaW5nUGllY2USJAoJYmFyX2J5dGVzGBAgASgMOgVCWVRFU0gBUghiYXJCeXRlcxJRCghiYXJfZW51bRgRIAEoDjIvLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0T25lb2YyLk5lc3RlZEVudW06A0JBUkgBUgdiYXJFbnVtEhcKB2Jhel9pbnQYEiABKAVSBmJhekludBIiCgpiYXpfc3RyaW5nGBMgASgJOgNCQVpSCWJhelN0cmluZxomCghGb29Hcm91cBIMCgFhGAkgASgFUgFhEgwKAWIYCiABKAlSAWIaRQoNTmVzdGVkTWVzc2FnZRIXCgdxdXhfaW50GAEgASgDUgZxdXhJbnQSGwoJY29yZ2VfaW50GAIgAygFUghjb3JnZUludCInCgpOZXN0ZWRFbnVtEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADQgUKA2Zvb0IFCgNiYXIi7gEKEVRlc3RSZXF1aXJlZE9uZW9mEhkKB2Zvb19pbnQYASABKAVIAFIGZm9vSW50Eh8KCmZvb19zdHJpbmcYAiABKAlIAFIJZm9vU3RyaW5nElwKC2Zvb19tZXNzYWdlGAMgASgLMjkucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZE9uZW9mLk5lc3RlZE1lc3NhZ2VIAFIKZm9vTWVzc2FnZRo4Cg1OZXN0ZWRNZXNzYWdlEicKD3JlcXVpcmVkX2RvdWJsZRgBIAIoAVIOcmVxdWlyZWREb3VibGVCBQoDZm9vIoACCg9UZXN0UmVxdWlyZWRNYXASRAoDZm9vGAEgAygLMjIucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZE1hcC5Gb29FbnRyeVIDZm9vGm8KCEZvb0VudHJ5EhAKA2tleRgBIAEoBVIDa2V5Ek0KBXZhbHVlGAIgASgLMjcucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RSZXF1aXJlZE1hcC5OZXN0ZWRNZXNzYWdlUgV2YWx1ZToCOAEaNgoNTmVzdGVkTWVzc2FnZRIlCg5yZXF1aXJlZF9pbnQzMhgBIAIoBVINcmVxdWlyZWRJbnQzMiL0BAoPVGVzdFBhY2tlZFR5cGVzEiUKDHBhY2tlZF9pbnQzMhhaIAMoBUICEAFSC3BhY2tlZEludDMyEiUKDHBhY2tlZF9pbnQ2NBhbIAMoA0ICEAFSC3BhY2tlZEludDY0EicKDXBhY2tlZF91aW50MzIYXCADKA1CAhABUgxwYWNrZWRVaW50MzISJwoNcGFja2VkX3VpbnQ2NBhdIAMoBEICEAFSDHBhY2tlZFVpbnQ2NBInCg1wYWNrZWRfc2ludDMyGF4gAygRQgIQAVIMcGFja2VkU2ludDMyEicKDXBhY2tlZF9zaW50NjQYXyADKBJCAhABUgxwYWNrZWRTaW50NjQSKQoOcGFja2VkX2ZpeGVkMzIYYCADKAdCAhABUg1wYWNrZWRGaXhlZDMyEikKDnBhY2tlZF9maXhlZDY0GGEgAygGQgIQAVINcGFja2VkRml4ZWQ2NBIrCg9wYWNrZWRfc2ZpeGVkMzIYYiADKA9CAhABUg5wYWNrZWRTZml4ZWQzMhIrCg9wYWNrZWRfc2ZpeGVkNjQYYyADKBBCAhABUg5wYWNrZWRTZml4ZWQ2NBIlCgxwYWNrZWRfZmxvYXQYZCADKAJCAhABUgtwYWNrZWRGbG9hdBInCg1wYWNrZWRfZG91YmxlGGUgAygBQgIQAVIMcGFja2VkRG91YmxlEiMKC3BhY2tlZF9ib29sGGYgAygIQgIQAVIKcGFja2VkQm9vbBJKCgtwYWNrZWRfZW51bRhnIAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bUICEAFSCnBhY2tlZEVudW0irgUKEVRlc3RVbnBhY2tlZFR5cGVzEikKDnVucGFja2VkX2ludDMyGFogAygFQgIQAFINdW5wYWNrZWRJbnQzMhIpCg51bnBhY2tlZF9pbnQ2NBhbIAMoA0ICEABSDXVucGFja2VkSW50NjQSKwoPdW5wYWNrZWRfdWludDMyGFwgAygNQgIQAFIOdW5wYWNrZWRVaW50MzISKwoPdW5wYWNrZWRfdWludDY0GF0gAygEQgIQAFIOdW5wYWNrZWRVaW50NjQSKwoPdW5wYWNrZWRfc2ludDMyGF4gAygRQgIQAFIOdW5wYWNrZWRTaW50MzISKwoPdW5wYWNrZWRfc2ludDY0GF8gAygSQgIQAFIOdW5wYWNrZWRTaW50NjQSLQoQdW5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEABSD3VucGFja2VkRml4ZWQzMhItChB1bnBhY2tlZF9maXhlZDY0GGEgAygGQgIQAFIPdW5wYWNrZWRGaXhlZDY0Ei8KEXVucGFja2VkX3NmaXhlZDMyGGIgAygPQgIQAFIQdW5wYWNrZWRTZml4ZWQzMhIvChF1bnBhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEABSEHVucGFja2VkU2ZpeGVkNjQSKQoOdW5wYWNrZWRfZmxvYXQYZCADKAJCAhAAUg11bnBhY2tlZEZsb2F0EisKD3VucGFja2VkX2RvdWJsZRhlIAMoAUICEABSDnVucGFja2VkRG91YmxlEicKDXVucGFja2VkX2Jvb2wYZiADKAhCAhAAUgx1bnBhY2tlZEJvb2wSTgoNdW5wYWNrZWRfZW51bRhnIAMoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bUICEABSDHVucGFja2VkRW51bSIgChRUZXN0UGFja2VkRXh0ZW5zaW9ucyoICAEQgICAgAIiIgoWVGVzdFVucGFja2VkRXh0ZW5zaW9ucyoICAEQgICAgAIiyAUKFVRlc3REeW5hbWljRXh0ZW5zaW9ucxIqChBzY2FsYXJfZXh0ZW5zaW9uGNAPIAEoB1IPc2NhbGFyRXh0ZW5zaW9uEk0KDmVudW1fZXh0ZW5zaW9uGNEPIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVINZW51bUV4dGVuc2lvbhJ2ChZkeW5hbWljX2VudW1fZXh0ZW5zaW9uGNIPIAEoDjI/LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RHluYW1pY0V4dGVuc2lvbnMuRHluYW1pY0VudW1UeXBlUhRkeW5hbWljRW51bUV4dGVuc2lvbhJWChFtZXNzYWdlX2V4dGVuc2lvbhjTDyABKAsyKC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbk1lc3NhZ2VSEG1lc3NhZ2VFeHRlbnNpb24SfwoZZHluYW1pY19tZXNzYWdlX2V4dGVuc2lvbhjUDyABKAsyQi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdER5bmFtaWNFeHRlbnNpb25zLkR5bmFtaWNNZXNzYWdlVHlwZVIXZHluYW1pY01lc3NhZ2VFeHRlbnNpb24SLgoScmVwZWF0ZWRfZXh0ZW5zaW9uGNUPIAMoCVIRcmVwZWF0ZWRFeHRlbnNpb24SLgoQcGFja2VkX2V4dGVuc2lvbhjWDyADKBFCAhABUg9wYWNrZWRFeHRlbnNpb24aOgoSRHluYW1pY01lc3NhZ2VUeXBlEiQKDWR5bmFtaWNfZmllbGQYtBAgASgFUgxkeW5hbWljRmllbGQiRwoPRHluYW1pY0VudW1UeXBlEhAKC0RZTkFNSUNfRk9PEJgREhAKC0RZTkFNSUNfQkFSEJkREhAKC0RZTkFNSUNfQkFaEJoRIp8CCiNUZXN0UmVwZWF0ZWRTY2FsYXJEaWZmZXJlbnRUYWdTaXplcxIpChByZXBlYXRlZF9maXhlZDMyGAwgAygHUg9yZXBlYXRlZEZpeGVkMzISJQoOcmVwZWF0ZWRfaW50MzIYDSADKAVSDXJlcGVhdGVkSW50MzISKgoQcmVwZWF0ZWRfZml4ZWQ2NBj+DyADKAZSD3JlcGVhdGVkRml4ZWQ2NBImCg5yZXBlYXRlZF9pbnQ2NBj/DyADKANSDXJlcGVhdGVkSW50NjQSJwoOcmVwZWF0ZWRfZmxvYXQY/v8PIAMoAlINcmVwZWF0ZWRGbG9hdBIpCg9yZXBlYXRlZF91aW50NjQY//8PIAMoBFIOcmVwZWF0ZWRVaW50NjQi4wwKEFRlc3RQYXJzaW5nTWVyZ2USVAoScmVxdWlyZWRfYWxsX3R5cGVzGAEgAigLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IQcmVxdWlyZWRBbGxUeXBlcxJUChJvcHRpb25hbF9hbGxfdHlwZXMYAiABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUhBvcHRpb25hbEFsbFR5cGVzElQKEnJlcGVhdGVkX2FsbF90eXBlcxgDIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSEHJlcGVhdGVkQWxsVHlwZXMSXgoNb3B0aW9uYWxncm91cBgKIAEoCjI4LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlLk9wdGlvbmFsR3JvdXBSDW9wdGlvbmFsZ3JvdXASXgoNcmVwZWF0ZWRncm91cBgUIAMoCjI4LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlLlJlcGVhdGVkR3JvdXBSDXJlcGVhdGVkZ3JvdXAarQUKF1JlcGVhdGVkRmllbGRzR2VuZXJhdG9yEj4KBmZpZWxkMRgBIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBmZpZWxkMRI+CgZmaWVsZDIYAiADKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzUgZmaWVsZDISPgoGZmllbGQzGAMgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IGZmllbGQzEmEKBmdyb3VwMRgKIAMoCjJJLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlLlJlcGVhdGVkRmllbGRzR2VuZXJhdG9yLkdyb3VwMVIGZ3JvdXAxEmEKBmdyb3VwMhgUIAMoCjJJLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFyc2luZ01lcmdlLlJlcGVhdGVkRmllbGRzR2VuZXJhdG9yLkdyb3VwMlIGZ3JvdXAyEjsKBGV4dDEY6AcgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IEZXh0MRI7CgRleHQyGOkHIAMoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBGV4dDIaSAoGR3JvdXAxEj4KBmZpZWxkMRgLIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSBmZpZWxkMRpICgZHcm91cDISPgoGZmllbGQxGBUgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IGZmllbGQxGnAKDU9wdGlvbmFsR3JvdXASXwoYb3B0aW9uYWxfZ3JvdXBfYWxsX3R5cGVzGAsgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IVb3B0aW9uYWxHcm91cEFsbFR5cGVzGnAKDVJlcGVhdGVkR3JvdXASXwoYcmVwZWF0ZWRfZ3JvdXBfYWxsX3R5cGVzGBUgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1IVcmVwZWF0ZWRHcm91cEFsbFR5cGVzKgkI6AcQgICAgAIydgoMb3B0aW9uYWxfZXh0EioucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYXJzaW5nTWVyZ2UY6AcgASgLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1ILb3B0aW9uYWxFeHQydgoMcmVwZWF0ZWRfZXh0EioucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYXJzaW5nTWVyZ2UY6QcgAygLMiYucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlc1ILcmVwZWF0ZWRFeHQiRwobVGVzdENvbW1lbnRJbmplY3Rpb25NZXNzYWdlEigKAWEYASABKAk6GiovIDwtIE5laXRoZXIgc2hvdWxkIHRoaXMuUgFhIgwKCkZvb1JlcXVlc3QiDQoLRm9vUmVzcG9uc2UiEgoQRm9vQ2xpZW50TWVzc2FnZSISChBGb29TZXJ2ZXJNZXNzYWdlIgwKCkJhclJlcXVlc3QiDQoLQmFyUmVzcG9uc2UizgEKDFRlc3RKc29uTmFtZRIfCgtmaWVsZF9uYW1lMRgBIAEoBVIKZmllbGROYW1lMRIeCgpmaWVsZE5hbWUyGAIgASgFUgpmaWVsZE5hbWUyEh4KCkZpZWxkTmFtZTMYAyABKAVSCkZpZWxkTmFtZTMSIAoMX2ZpZWxkX25hbWU0GAQgASgFUgpGaWVsZE5hbWU0Eh8KC0ZJRUxEX05BTUU1GAUgASgFUgpGSUVMRE5BTUU1EhoKC2ZpZWxkX25hbWU2GAYgASgFUgVAdHlwZSKBCAoUVGVzdEh1Z2VGaWVsZE51bWJlcnMSKQoOb3B0aW9uYWxfaW50MzIY8Pj//wEgASgFUg1vcHRpb25hbEludDMyEh0KCGZpeGVkXzMyGPH4//8BIAEoBVIHZml4ZWQzMhItCg5yZXBlYXRlZF9pbnQzMhjy+P//ASADKAVCAhAAUg1yZXBlYXRlZEludDMyEikKDHBhY2tlZF9pbnQzMhjz+P//ASADKAVCAhABUgtwYWNrZWRJbnQzMhJOCg1vcHRpb25hbF9lbnVtGPT4//8BIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bVIMb3B0aW9uYWxFbnVtEisKD29wdGlvbmFsX3N0cmluZxj1+P//ASABKAlSDm9wdGlvbmFsU3RyaW5nEikKDm9wdGlvbmFsX2J5dGVzGPb4//8BIAEoDFINb3B0aW9uYWxCeXRlcxJXChBvcHRpb25hbF9tZXNzYWdlGPf4//8BIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIPb3B0aW9uYWxNZXNzYWdlEmYKDW9wdGlvbmFsZ3JvdXAY+Pj//wEgASgKMjwucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RIdWdlRmllbGROdW1iZXJzLk9wdGlvbmFsR3JvdXBSDW9wdGlvbmFsZ3JvdXAScwoRc3RyaW5nX3N0cmluZ19tYXAY+vj//wEgAygLMkMucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RIdWdlRmllbGROdW1iZXJzLlN0cmluZ1N0cmluZ01hcEVudHJ5Ug9zdHJpbmdTdHJpbmdNYXASJwoMb25lb2ZfdWludDMyGPv4//8BIAEoDUgAUgtvbmVvZlVpbnQzMhJdChRvbmVvZl90ZXN0X2FsbF90eXBlcxj8+P//ASABKAsyJi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzSABSEW9uZW9mVGVzdEFsbFR5cGVzEicKDG9uZW9mX3N0cmluZxj9+P//ASABKAlIAFILb25lb2ZTdHJpbmcSJQoLb25lb2ZfYnl0ZXMY/vj//wEgASgMSABSCm9uZW9mQnl0ZXMaLAoNT3B0aW9uYWxHcm91cBIbCgdncm91cF9hGPn4//8BIAEoBVIGZ3JvdXBBGkIKFFN0cmluZ1N0cmluZ01hcEVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEqDgjgqv//ARDw+P//ARoAQg0KC29uZW9mX2ZpZWxkIvoBChhUZXN0RXh0ZW5zaW9uSW5zaWRlVGFibGUSFgoGZmllbGQxGAEgASgFUgZmaWVsZDESFgoGZmllbGQyGAIgASgFUgZmaWVsZDISFgoGZmllbGQzGAMgASgFUgZmaWVsZDMSFgoGZmllbGQ0GAQgASgFUgZmaWVsZDQSFgoGZmllbGQ2GAYgASgFUgZmaWVsZDYSFgoGZmllbGQ3GAcgASgFUgZmaWVsZDcSFgoGZmllbGQ4GAggASgFUgZmaWVsZDgSFgoGZmllbGQ5GAkgASgFUgZmaWVsZDkSGAoHZmllbGQxMBgKIAEoBVIHZmllbGQxMCoECAUQBipACgtGb3JlaWduRW51bRIPCgtGT1JFSUdOX0ZPTxAEEg8KC0ZPUkVJR05fQkFSEAUSDwoLRk9SRUlHTl9CQVoQBipLChRUZXN0RW51bVdpdGhEdXBWYWx1ZRIICgRGT08xEAESCAoEQkFSMRACEgcKA0JBWhADEggKBEZPTzIQARIICgRCQVIyEAIaAhABKokBCg5UZXN0U3BhcnNlRW51bRIMCghTUEFSU0VfQRB7Eg4KCFNQQVJTRV9CEKbnAxIPCghTUEFSU0VfQxCysYAGEhUKCFNQQVJTRV9EEPH//////////wESFQoIU1BBUlNFX0UQtN78////////ARIMCghTUEFSU0VfRhAAEgwKCFNQQVJTRV9HEAIqiw8KDVZlcnlMYXJnZUVudW0SFgoSRU5VTV9MQUJFTF9ERUZBVUxUEAASEAoMRU5VTV9MQUJFTF8xEAESEAoMRU5VTV9MQUJFTF8yEAISEAoMRU5VTV9MQUJFTF8zEAMSEAoMRU5VTV9MQUJFTF80EAQSEAoMRU5VTV9MQUJFTF81EAUSEAoMRU5VTV9MQUJFTF82EAYSEAoMRU5VTV9MQUJFTF83EAcSEAoMRU5VTV9MQUJFTF84EAgSEAoMRU5VTV9MQUJFTF85EAkSEQoNRU5VTV9MQUJFTF8xMBAKEhEKDUVOVU1fTEFCRUxfMTEQCxIRCg1FTlVNX0xBQkVMXzEyEAwSEQoNRU5VTV9MQUJFTF8xMxANEhEKDUVOVU1fTEFCRUxfMTQQDhIRCg1FTlVNX0xBQkVMXzE1EA8SEQoNRU5VTV9MQUJFTF8xNhAQEhEKDUVOVU1fTEFCRUxfMTcQERIRCg1FTlVNX0xBQkVMXzE4EBISEQoNRU5VTV9MQUJFTF8xORATEhEKDUVOVU1fTEFCRUxfMjAQFBIRCg1FTlVNX0xBQkVMXzIxEBUSEQoNRU5VTV9MQUJFTF8yMhAWEhEKDUVOVU1fTEFCRUxfMjMQFxIRCg1FTlVNX0xBQkVMXzI0EBgSEQoNRU5VTV9MQUJFTF8yNRAZEhEKDUVOVU1fTEFCRUxfMjYQGhIRCg1FTlVNX0xBQkVMXzI3EBsSEQoNRU5VTV9MQUJFTF8yOBAcEhEKDUVOVU1fTEFCRUxfMjkQHRIRCg1FTlVNX0xBQkVMXzMwEB4SEQoNRU5VTV9MQUJFTF8zMRAfEhEKDUVOVU1fTEFCRUxfMzIQIBIRCg1FTlVNX0xBQkVMXzMzECESEQoNRU5VTV9MQUJFTF8zNBAiEhEKDUVOVU1fTEFCRUxfMzUQIxIRCg1FTlVNX0xBQkVMXzM2ECQSEQoNRU5VTV9MQUJFTF8zNxAlEhEKDUVOVU1fTEFCRUxfMzgQJhIRCg1FTlVNX0xBQkVMXzM5ECcSEQoNRU5VTV9MQUJFTF80MBAoEhEKDUVOVU1fTEFCRUxfNDEQKRIRCg1FTlVNX0xBQkVMXzQyECoSEQoNRU5VTV9MQUJFTF80MxArEhEKDUVOVU1fTEFCRUxfNDQQLBIRCg1FTlVNX0xBQkVMXzQ1EC0SEQoNRU5VTV9MQUJFTF80NhAuEhEKDUVOVU1fTEFCRUxfNDcQLxIRCg1FTlVNX0xBQkVMXzQ4EDASEQoNRU5VTV9MQUJFTF80ORAxEhEKDUVOVU1fTEFCRUxfNTAQMhIRCg1FTlVNX0xBQkVMXzUxEDMSEQoNRU5VTV9MQUJFTF81MhA0EhEKDUVOVU1fTEFCRUxfNTMQNRIRCg1FTlVNX0xBQkVMXzU0EDYSEQoNRU5VTV9MQUJFTF81NRA3EhEKDUVOVU1fTEFCRUxfNTYQOBIRCg1FTlVNX0xBQkVMXzU3EDkSEQoNRU5VTV9MQUJFTF81OBA6EhEKDUVOVU1fTEFCRUxfNTkQOxIRCg1FTlVNX0xBQkVMXzYwEDwSEQoNRU5VTV9MQUJFTF82MRA9EhEKDUVOVU1fTEFCRUxfNjIQPhIRCg1FTlVNX0xBQkVMXzYzED8SEQoNRU5VTV9MQUJFTF82NBBAEhEKDUVOVU1fTEFCRUxfNjUQQRIRCg1FTlVNX0xBQkVMXzY2EEISEQoNRU5VTV9MQUJFTF82NxBDEhEKDUVOVU1fTEFCRUxfNjgQRBIRCg1FTlVNX0xBQkVMXzY5EEUSEQoNRU5VTV9MQUJFTF83MBBGEhEKDUVOVU1fTEFCRUxfNzEQRxIRCg1FTlVNX0xBQkVMXzcyEEgSEQoNRU5VTV9MQUJFTF83MxBJEhEKDUVOVU1fTEFCRUxfNzQQShIRCg1FTlVNX0xBQkVMXzc1EEsSEQoNRU5VTV9MQUJFTF83NhBMEhEKDUVOVU1fTEFCRUxfNzcQTRIRCg1FTlVNX0xBQkVMXzc4EE4SEQoNRU5VTV9MQUJFTF83ORBPEhEKDUVOVU1fTEFCRUxfODAQUBIRCg1FTlVNX0xBQkVMXzgxEFESEQoNRU5VTV9MQUJFTF84MhBSEhEKDUVOVU1fTEFCRUxfODMQUxIRCg1FTlVNX0xBQkVMXzg0EFQSEQoNRU5VTV9MQUJFTF84NRBVEhEKDUVOVU1fTEFCRUxfODYQVhIRCg1FTlVNX0xBQkVMXzg3EFcSEQoNRU5VTV9MQUJFTF84OBBYEhEKDUVOVU1fTEFCRUxfODkQWRIRCg1FTlVNX0xBQkVMXzkwEFoSEQoNRU5VTV9MQUJFTF85MRBbEhEKDUVOVU1fTEFCRUxfOTIQXBIRCg1FTlVNX0xBQkVMXzkzEF0SEQoNRU5VTV9MQUJFTF85NBBeEhEKDUVOVU1fTEFCRUxfOTUQXxIRCg1FTlVNX0xBQkVMXzk2EGASEQoNRU5VTV9MQUJFTF85NxBhEhEKDUVOVU1fTEFCRUxfOTgQYhIRCg1FTlVNX0xBQkVMXzk5EGMSEgoORU5VTV9MQUJFTF8xMDAQZDK1AQoLVGVzdFNlcnZpY2USUgoDRm9vEiQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvb1JlcXVlc3QaJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9vUmVzcG9uc2USUgoDQmFyEiQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkJhclJlcXVlc3QaJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuQmFyUmVzcG9uc2U6ZQoYb3B0aW9uYWxfaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAEgASgFUhZvcHRpb25hbEludDMyRXh0ZW5zaW9uOmUKGG9wdGlvbmFsX2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgCIAEoA1IWb3B0aW9uYWxJbnQ2NEV4dGVuc2lvbjpnChlvcHRpb25hbF91aW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAMgASgNUhdvcHRpb25hbFVpbnQzMkV4dGVuc2lvbjpnChlvcHRpb25hbF91aW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAQgASgEUhdvcHRpb25hbFVpbnQ2NEV4dGVuc2lvbjpnChlvcHRpb25hbF9zaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAUgASgRUhdvcHRpb25hbFNpbnQzMkV4dGVuc2lvbjpnChlvcHRpb25hbF9zaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAYgASgSUhdvcHRpb25hbFNpbnQ2NEV4dGVuc2lvbjppChpvcHRpb25hbF9maXhlZDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgHIAEoB1IYb3B0aW9uYWxGaXhlZDMyRXh0ZW5zaW9uOmkKGm9wdGlvbmFsX2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAggASgGUhhvcHRpb25hbEZpeGVkNjRFeHRlbnNpb246awobb3B0aW9uYWxfc2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGAkgASgPUhlvcHRpb25hbFNmaXhlZDMyRXh0ZW5zaW9uOmsKG29wdGlvbmFsX3NmaXhlZDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgKIAEoEFIZb3B0aW9uYWxTZml4ZWQ2NEV4dGVuc2lvbjplChhvcHRpb25hbF9mbG9hdF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYCyABKAJSFm9wdGlvbmFsRmxvYXRFeHRlbnNpb246ZwoZb3B0aW9uYWxfZG91YmxlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgMIAEoAVIXb3B0aW9uYWxEb3VibGVFeHRlbnNpb246YwoXb3B0aW9uYWxfYm9vbF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYDSABKAhSFW9wdGlvbmFsQm9vbEV4dGVuc2lvbjpnChlvcHRpb25hbF9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGA4gASgJUhdvcHRpb25hbFN0cmluZ0V4dGVuc2lvbjplChhvcHRpb25hbF9ieXRlc19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYDyABKAxSFm9wdGlvbmFsQnl0ZXNFeHRlbnNpb246lwEKF29wdGlvbmFsZ3JvdXBfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBAgASgKMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLk9wdGlvbmFsR3JvdXBfZXh0ZW5zaW9uUhZvcHRpb25hbGdyb3VwRXh0ZW5zaW9uOqwBCiFvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYEiABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSHm9wdGlvbmFsTmVzdGVkTWVzc2FnZUV4dGVuc2lvbjqiAQoib3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgTIAEoCzIoLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduTWVzc2FnZVIfb3B0aW9uYWxGb3JlaWduTWVzc2FnZUV4dGVuc2lvbjqmAQohb3B0aW9uYWxfaW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBQgASgLMi4ucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0X3Byb3RvMi5JbXBvcnRNZXNzYWdlUh5vcHRpb25hbEltcG9ydE1lc3NhZ2VFeHRlbnNpb246owEKHm9wdGlvbmFsX25lc3RlZF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgVIAEoDjIxLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bVIbb3B0aW9uYWxOZXN0ZWRFbnVtRXh0ZW5zaW9uOpkBCh9vcHRpb25hbF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBYgASgOMiUucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25FbnVtUhxvcHRpb25hbEZvcmVpZ25FbnVtRXh0ZW5zaW9uOp0BCh5vcHRpb25hbF9pbXBvcnRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYFyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW1SG29wdGlvbmFsSW1wb3J0RW51bUV4dGVuc2lvbjp2Ch9vcHRpb25hbF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBggASgJQgIIAlIcb3B0aW9uYWxTdHJpbmdQaWVjZUV4dGVuc2lvbjpnChdvcHRpb25hbF9jb3JkX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgZIAEoCUICCAFSFW9wdGlvbmFsQ29yZEV4dGVuc2lvbjq5AQoob3B0aW9uYWxfcHVibGljX2ltcG9ydF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgaIAEoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuUHVibGljSW1wb3J0TWVzc2FnZVIkb3B0aW9uYWxQdWJsaWNJbXBvcnRNZXNzYWdlRXh0ZW5zaW9uOqwBCh9vcHRpb25hbF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGBsgASgLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVIcb3B0aW9uYWxMYXp5TWVzc2FnZUV4dGVuc2lvbjplChhyZXBlYXRlZF9pbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYHyADKAVSFnJlcGVhdGVkSW50MzJFeHRlbnNpb246ZQoYcmVwZWF0ZWRfaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCAgAygDUhZyZXBlYXRlZEludDY0RXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYISADKA1SF3JlcGVhdGVkVWludDMyRXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3VpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYIiADKARSF3JlcGVhdGVkVWludDY0RXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3NpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYIyADKBFSF3JlcGVhdGVkU2ludDMyRXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3NpbnQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYJCADKBJSF3JlcGVhdGVkU2ludDY0RXh0ZW5zaW9uOmkKGnJlcGVhdGVkX2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCUgAygHUhhyZXBlYXRlZEZpeGVkMzJFeHRlbnNpb246aQoacmVwZWF0ZWRfZml4ZWQ2NF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYJiADKAZSGHJlcGVhdGVkRml4ZWQ2NEV4dGVuc2lvbjprChtyZXBlYXRlZF9zZml4ZWQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYJyADKA9SGXJlcGVhdGVkU2ZpeGVkMzJFeHRlbnNpb246awobcmVwZWF0ZWRfc2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCggAygQUhlyZXBlYXRlZFNmaXhlZDY0RXh0ZW5zaW9uOmUKGHJlcGVhdGVkX2Zsb2F0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgpIAMoAlIWcmVwZWF0ZWRGbG9hdEV4dGVuc2lvbjpnChlyZXBlYXRlZF9kb3VibGVfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGCogAygBUhdyZXBlYXRlZERvdWJsZUV4dGVuc2lvbjpjChdyZXBlYXRlZF9ib29sX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgrIAMoCFIVcmVwZWF0ZWRCb29sRXh0ZW5zaW9uOmcKGXJlcGVhdGVkX3N0cmluZ19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYLCADKAlSF3JlcGVhdGVkU3RyaW5nRXh0ZW5zaW9uOmUKGHJlcGVhdGVkX2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgtIAMoDFIWcmVwZWF0ZWRCeXRlc0V4dGVuc2lvbjqXAQoXcmVwZWF0ZWRncm91cF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYLiADKAoyMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuUmVwZWF0ZWRHcm91cF9leHRlbnNpb25SFnJlcGVhdGVkZ3JvdXBFeHRlbnNpb246rAEKIXJlcGVhdGVkX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxgwIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZVIecmVwZWF0ZWROZXN0ZWRNZXNzYWdlRXh0ZW5zaW9uOqIBCiJyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDEgAygLMigucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLkZvcmVpZ25NZXNzYWdlUh9yZXBlYXRlZEZvcmVpZ25NZXNzYWdlRXh0ZW5zaW9uOqYBCiFyZXBlYXRlZF9pbXBvcnRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYMiADKAsyLi5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydE1lc3NhZ2VSHnJlcGVhdGVkSW1wb3J0TWVzc2FnZUV4dGVuc2lvbjqjAQoecmVwZWF0ZWRfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDMgAygOMjEucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtUhtyZXBlYXRlZE5lc3RlZEVudW1FeHRlbnNpb246mQEKH3JlcGVhdGVkX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYNCADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1SHHJlcGVhdGVkRm9yZWlnbkVudW1FeHRlbnNpb246nQEKHnJlcGVhdGVkX2ltcG9ydF9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg1IAMoDjIrLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydF9wcm90bzIuSW1wb3J0RW51bVIbcmVwZWF0ZWRJbXBvcnRFbnVtRXh0ZW5zaW9uOnYKH3JlcGVhdGVkX3N0cmluZ19waWVjZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYNiADKAlCAggCUhxyZXBlYXRlZFN0cmluZ1BpZWNlRXh0ZW5zaW9uOmcKF3JlcGVhdGVkX2NvcmRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDcgAygJQgIIAVIVcmVwZWF0ZWRDb3JkRXh0ZW5zaW9uOqwBCh9yZXBlYXRlZF9sYXp5X21lc3NhZ2VfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGDkgAygLMjQucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlQgIoAVIccmVwZWF0ZWRMYXp5TWVzc2FnZUV4dGVuc2lvbjpnChdkZWZhdWx0X2ludDMyX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg9IAEoBToCNDFSFWRlZmF1bHRJbnQzMkV4dGVuc2lvbjpnChdkZWZhdWx0X2ludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxg+IAEoAzoCNDJSFWRlZmF1bHRJbnQ2NEV4dGVuc2lvbjppChhkZWZhdWx0X3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYPyABKA06AjQzUhZkZWZhdWx0VWludDMyRXh0ZW5zaW9uOmkKGGRlZmF1bHRfdWludDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhAIAEoBDoCNDRSFmRlZmF1bHRVaW50NjRFeHRlbnNpb246agoYZGVmYXVsdF9zaW50MzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEEgASgROgMtNDVSFmRlZmF1bHRTaW50MzJFeHRlbnNpb246aQoYZGVmYXVsdF9zaW50NjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEIgASgSOgI0NlIWZGVmYXVsdFNpbnQ2NEV4dGVuc2lvbjprChlkZWZhdWx0X2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEMgASgHOgI0N1IXZGVmYXVsdEZpeGVkMzJFeHRlbnNpb246awoZZGVmYXVsdF9maXhlZDY0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhEIAEoBjoCNDhSF2RlZmF1bHRGaXhlZDY0RXh0ZW5zaW9uOm0KGmRlZmF1bHRfc2ZpeGVkMzJfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEUgASgPOgI0OVIYZGVmYXVsdFNmaXhlZDMyRXh0ZW5zaW9uOm4KGmRlZmF1bHRfc2ZpeGVkNjRfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEYgASgQOgMtNTBSGGRlZmF1bHRTZml4ZWQ2NEV4dGVuc2lvbjppChdkZWZhdWx0X2Zsb2F0X2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhHIAEoAjoENTEuNVIVZGVmYXVsdEZsb2F0RXh0ZW5zaW9uOmwKGGRlZmF1bHRfZG91YmxlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhIIAEoAToFNTIwMDBSFmRlZmF1bHREb3VibGVFeHRlbnNpb246ZwoWZGVmYXVsdF9ib29sX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhJIAEoCDoEdHJ1ZVIUZGVmYXVsdEJvb2xFeHRlbnNpb246bAoYZGVmYXVsdF9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGEogASgJOgVoZWxsb1IWZGVmYXVsdFN0cmluZ0V4dGVuc2lvbjpqChdkZWZhdWx0X2J5dGVzX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhLIAEoDDoFd29ybGRSFWRlZmF1bHRCeXRlc0V4dGVuc2lvbjqmAQodZGVmYXVsdF9uZXN0ZWRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYUSABKA4yMS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW06A0JBUlIaZGVmYXVsdE5lc3RlZEVudW1FeHRlbnNpb246pAEKHmRlZmF1bHRfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhSIAEoDjIlLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVJSG2RlZmF1bHRGb3JlaWduRW51bUV4dGVuc2lvbjqnAQodZGVmYXVsdF9pbXBvcnRfZW51bV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYUyABKA4yKy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnRfcHJvdG8yLkltcG9ydEVudW06CklNUE9SVF9CQVJSGmRlZmF1bHRJbXBvcnRFbnVtRXh0ZW5zaW9uOnkKHmRlZmF1bHRfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbhIrLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsRXh0ZW5zaW9ucxhUIAEoCToDYWJjQgIIAlIbZGVmYXVsdFN0cmluZ1BpZWNlRXh0ZW5zaW9uOmoKFmRlZmF1bHRfY29yZF9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYVSABKAk6AzEyM0ICCAFSFGRlZmF1bHRDb3JkRXh0ZW5zaW9uOmEKFm9uZW9mX3VpbnQzMl9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYbyABKA1SFG9uZW9mVWludDMyRXh0ZW5zaW9uOqYBCh5vbmVvZl9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYcCABKAsyNC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2VSG29uZW9mTmVzdGVkTWVzc2FnZUV4dGVuc2lvbjphChZvbmVvZl9zdHJpbmdfZXh0ZW5zaW9uEisucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RBbGxFeHRlbnNpb25zGHEgASgJUhRvbmVvZlN0cmluZ0V4dGVuc2lvbjpfChVvbmVvZl9ieXRlc19leHRlbnNpb24SKy5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEFsbEV4dGVuc2lvbnMYciABKAxSE29uZW9mQnl0ZXNFeHRlbnNpb246XAoTbXlfZXh0ZW5zaW9uX3N0cmluZxIsLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RmllbGRPcmRlcmluZ3MYMiABKAlSEW15RXh0ZW5zaW9uU3RyaW5nOlYKEG15X2V4dGVuc2lvbl9pbnQSLC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdEZpZWxkT3JkZXJpbmdzGAUgASgFUg5teUV4dGVuc2lvbkludDpoChZwYWNrZWRfaW50MzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGFogAygFQgIQAVIUcGFja2VkSW50MzJFeHRlbnNpb246aAoWcGFja2VkX2ludDY0X2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhbIAMoA0ICEAFSFHBhY2tlZEludDY0RXh0ZW5zaW9uOmoKF3BhY2tlZF91aW50MzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGFwgAygNQgIQAVIVcGFja2VkVWludDMyRXh0ZW5zaW9uOmoKF3BhY2tlZF91aW50NjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGF0gAygEQgIQAVIVcGFja2VkVWludDY0RXh0ZW5zaW9uOmoKF3BhY2tlZF9zaW50MzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGF4gAygRQgIQAVIVcGFja2VkU2ludDMyRXh0ZW5zaW9uOmoKF3BhY2tlZF9zaW50NjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGF8gAygSQgIQAVIVcGFja2VkU2ludDY0RXh0ZW5zaW9uOmwKGHBhY2tlZF9maXhlZDMyX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhgIAMoB0ICEAFSFnBhY2tlZEZpeGVkMzJFeHRlbnNpb246bAoYcGFja2VkX2ZpeGVkNjRfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGEgAygGQgIQAVIWcGFja2VkRml4ZWQ2NEV4dGVuc2lvbjpuChlwYWNrZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RQYWNrZWRFeHRlbnNpb25zGGIgAygPQgIQAVIXcGFja2VkU2ZpeGVkMzJFeHRlbnNpb246bgoZcGFja2VkX3NmaXhlZDY0X2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhjIAMoEEICEAFSF3BhY2tlZFNmaXhlZDY0RXh0ZW5zaW9uOmgKFnBhY2tlZF9mbG9hdF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZCADKAJCAhABUhRwYWNrZWRGbG9hdEV4dGVuc2lvbjpqChdwYWNrZWRfZG91YmxlX2V4dGVuc2lvbhIuLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0UGFja2VkRXh0ZW5zaW9ucxhlIAMoAUICEAFSFXBhY2tlZERvdWJsZUV4dGVuc2lvbjpmChVwYWNrZWRfYm9vbF9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZiADKAhCAhABUhNwYWNrZWRCb29sRXh0ZW5zaW9uOo0BChVwYWNrZWRfZW51bV9leHRlbnNpb24SLi5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFBhY2tlZEV4dGVuc2lvbnMYZyADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhABUhNwYWNrZWRFbnVtRXh0ZW5zaW9uOm4KGHVucGFja2VkX2ludDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGFogAygFQgIQAFIWdW5wYWNrZWRJbnQzMkV4dGVuc2lvbjpuChh1bnBhY2tlZF9pbnQ2NF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhbIAMoA0ICEABSFnVucGFja2VkSW50NjRFeHRlbnNpb246cAoZdW5wYWNrZWRfdWludDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGFwgAygNQgIQAFIXdW5wYWNrZWRVaW50MzJFeHRlbnNpb246cAoZdW5wYWNrZWRfdWludDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF0gAygEQgIQAFIXdW5wYWNrZWRVaW50NjRFeHRlbnNpb246cAoZdW5wYWNrZWRfc2ludDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF4gAygRQgIQAFIXdW5wYWNrZWRTaW50MzJFeHRlbnNpb246cAoZdW5wYWNrZWRfc2ludDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGF8gAygSQgIQAFIXdW5wYWNrZWRTaW50NjRFeHRlbnNpb246cgoadW5wYWNrZWRfZml4ZWQzMl9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhgIAMoB0ICEABSGHVucGFja2VkRml4ZWQzMkV4dGVuc2lvbjpyChp1bnBhY2tlZF9maXhlZDY0X2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGEgAygGQgIQAFIYdW5wYWNrZWRGaXhlZDY0RXh0ZW5zaW9uOnQKG3VucGFja2VkX3NmaXhlZDMyX2V4dGVuc2lvbhIwLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0VW5wYWNrZWRFeHRlbnNpb25zGGIgAygPQgIQAFIZdW5wYWNrZWRTZml4ZWQzMkV4dGVuc2lvbjp0Cht1bnBhY2tlZF9zZml4ZWQ2NF9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhjIAMoEEICEABSGXVucGFja2VkU2ZpeGVkNjRFeHRlbnNpb246bgoYdW5wYWNrZWRfZmxvYXRfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZCADKAJCAhAAUhZ1bnBhY2tlZEZsb2F0RXh0ZW5zaW9uOnAKGXVucGFja2VkX2RvdWJsZV9leHRlbnNpb24SMC5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuVGVzdFVucGFja2VkRXh0ZW5zaW9ucxhlIAMoAUICEABSF3VucGFja2VkRG91YmxlRXh0ZW5zaW9uOmwKF3VucGFja2VkX2Jvb2xfZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZiADKAhCAhAAUhV1bnBhY2tlZEJvb2xFeHRlbnNpb246kwEKF3VucGFja2VkX2VudW1fZXh0ZW5zaW9uEjAucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RVbnBhY2tlZEV4dGVuc2lvbnMYZyADKA4yJS5wcm90b2J1Zl91bml0dGVzdF9wcm90bzIuRm9yZWlnbkVudW1CAhAAUhV1bnBhY2tlZEVudW1FeHRlbnNpb246gAEKDnRlc3RfYWxsX3R5cGVzEi4ucHJvdG9idWZfdW5pdHRlc3RfcHJvdG8yLlRlc3RIdWdlRmllbGROdW1iZXJzGOCq//8BIAEoCzImLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0QWxsVHlwZXNSDHRlc3RBbGxUeXBlczqEAQoldGVzdF9leHRlbnNpb25faW5zaWRlX3RhYmxlX2V4dGVuc2lvbhIyLnByb3RvYnVmX3VuaXR0ZXN0X3Byb3RvMi5UZXN0RXh0ZW5zaW9uSW5zaWRlVGFibGUYBSABKAVSIXRlc3RFeHRlbnNpb25JbnNpZGVUYWJsZUV4dGVuc2lvbkIySAGAAQGIAQGQAQH4AQGqAiFHb29nbGUuUHJvdG9idWYuVGVzdFByb3Rvcy5Qcm90bzJKz7gDCgcSBSYA3QgBCqIOCgEMEgMmABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLTASBBdXRob3I6IGtlbnRvbkBnb29nbGUuY29tIChLZW50b24gVmFyZGEpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBBIHByb3RvIGZpbGUgd2Ugd2lsbCB1c2UgZm9yIHVuaXQgdGVzdGluZy4KCiBMSU5UOiBBTExPV19HUk9VUFMsIExFR0FDWV9OQU1FUwoKCAoBCBIDKgAiCoABCgIIEBIDKgAiGmcgU29tZSBnZW5lcmljX3NlcnZpY2VzIG9wdGlvbihzKSBhZGRlZCBhdXRvbWF0aWNhbGx5LgogU2VlOiAgaHR0cDovL2dvL3Byb3RvMi1nZW5lcmljLXNlcnZpY2VzLWRlZmF1bHQKIgwgYXV0by1hZGRlZAoKCAoBCBIDKwAkChcKAggREgMrACQiDCBhdXRvLWFkZGVkCgoICgEIEgMsACIKFwoCCBISAywAIiIMIGF1dG8tYWRkZWQKCggKAQgSAy0AHwoJCgIIHxIDLQAfCgkKAgMAEgMvAC0K5gEKAQISAzQAIRrbASBXZSBkb24ndCBwdXQgdGhpcyBpbiBhIHBhY2thZ2Ugd2l0aGluIHByb3RvMiBiZWNhdXNlIHdlIG5lZWQgdG8gbWFrZSBzdXJlCiB0aGF0IHRoZSBnZW5lcmF0ZWQgY29kZSBkb2Vzbid0IGRlcGVuZCBvbiBiZWluZyBpbiB0aGUgcHJvdG8yIG5hbWVzcGFjZS4KIEluIHRlc3RfdXRpbC5oIHdlIGRvICJ1c2luZyBuYW1lc3BhY2UgdW5pdHRlc3QgPSBwcm90b2J1Zl91bml0dGVzdCIuCgoICgEIEgM5ABwK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hwMLEAoNCgUEDAIIARIEhwMRFwoNCgUEDAIIAxIEhwMaGwoMCgQEDAIJEgSIAwIeCg0KBQQMAgkEEgSIAwIKCg0KBQQMAgkFEgSIAwsQCg0KBQQMAgkBEgSIAxEYCg0KBQQMAgkDEgSIAxsdCgwKBAQMAgoSBIkDAh4KDQoFBAwCCgQSBIkDAgoKDQoFBAwCCgUSBIkDCxAKDQoFBAwCCgESBIkDERgKDQoFBAwCCgMSBIkDGx0KDAoEBAwCCxIEigMCHgoNCgUEDAILBBIEigMCCgoNCgUEDAILBRIEigMLEAoNCgUEDAILARIEigMRGAoNCgUEDAILAxIEigMbHQoMCgQEDAIMEgSLAwIeCg0KBQQMAgwEEgSLAwIKCg0KBQQMAgwFEgSLAwsQCg0KBQQMAgwBEgSLAxEYCg0KBQQMAgwDEgSLAxsdCgwKBAQMAg0SBIwDAh4KDQoFBAwCDQQSBIwDAgoKDQoFBAwCDQUSBIwDCxAKDQoFBAwCDQESBIwDERgKDQoFBAwCDQMSBIwDGx0KDAoEBAwCDhIEjQMCHgoNCgUEDAIOBBIEjQMCCgoNCgUEDAIOBRIEjQMLEAoNCgUEDAIOARIEjQMRGAoNCgUEDAIOAxIEjQMbHQoMCgQEDAIPEgSOAwIeCg0KBQQMAg8EEgSOAwIKCg0KBQQMAg8FEgSOAwsQCg0KBQQMAg8BEgSOAxEYCg0KBQQMAg8DEgSOAxsdCgwKBAQMAhASBI8DAh4KDQoFBAwCEAQSBI8DAgoKDQoFBAwCEAUSBI8DCxAKDQoFBAwCEAESBI8DERgKDQoFBAwCEAMSBI8DGx0KDAoEBAwCERIEkAMCHgoNCgUEDAIRBBIEkAMCCgoNCgUEDAIRBRIEkAMLEAoNCgUEDAIRARIEkAMRGAoNCgUEDAIRAxIEkAMbHQoMCgQEDAISEgSRAwIeCg0KBQQMAhIEEgSRAwIKCg0KBQQMAhIFEgSRAwsQCg0KBQQMAhIBEgSRAxEYCg0KBQQMAhIDEgSRAxsdCgwKBAQMAhMSBJIDAh4KDQoFBAwCEwQSBJIDAgoKDQoFBAwCEwUSBJIDCxAKDQoFBAwCEwESBJIDERgKDQoFBAwCEwMSBJIDGx0KDAoEBAwCFBIEkwMCHgoNCgUEDAIUBBIEkwMCCgoNCgUEDAIUBRIEkwMLEAoNCgUEDAIUARIEkwMRGAoNCgUEDAIUAxIEkwMbHQoMCgQEDAIVEgSUAwIeCg0KBQQMAhUEEgSUAwIKCg0KBQQMAhUFEgSUAwsQCg0KBQQMAhUBEgSUAxEYCg0KBQQMAhUDEgSUAxsdCgwKBAQMAhYSBJUDAh4KDQoFBAwCFgQSBJUDAgoKDQoFBAwCFgUSBJUDCxAKDQoFBAwCFgESBJUDERgKDQoFBAwCFgMSBJUDGx0KDAoEBAwCFxIElgMCHgoNCgUEDAIXBBIElgMCCgoNCgUEDAIXBRIElgMLEAoNCgUEDAIXARIElgMRGAoNCgUEDAIXAxIElgMbHQoMCgQEDAIYEgSXAwIeCg0KBQQMAhgEEgSXAwIKCg0KBQQMAhgFEgSXAwsQCg0KBQQMAhgBEgSXAxEYCg0KBQQMAhgDEgSXAxsdCgwKBAQMAhkSBJgDAh4KDQoFBAwCGQQSBJgDAgoKDQoFBAwCGQUSBJgDCxAKDQoFBAwCGQESBJgDERgKDQoFBAwCGQMSBJgDGx0KDAoEBAwCGhIEmQMCHgoNCgUEDAIaBBIEmQMCCgoNCgUEDAIaBRIEmQMLEAoNCgUEDAIaARIEmQMRGAoNCgUEDAIaAxIEmQMbHQoMCgQEDAIbEgSaAwIeCg0KBQQMAhsEEgSaAwIKCg0KBQQMAhsFEgSaAwsQCg0KBQQMAhsBEgSaAxEYCg0KBQQMAhsDEgSaAxsdCgwKBAQMAhwSBJsDAh4KDQoFBAwCHAQSBJsDAgoKDQoFBAwCHAUSBJsDCxAKDQoFBAwCHAESBJsDERgKDQoFBAwCHAMSBJsDGx0KDAoEBAwCHRIEnAMCHgoNCgUEDAIdBBIEnAMCCgoNCgUEDAIdBRIEnAMLEAoNCgUEDAIdARIEnAMRGAoNCgUEDAIdAxIEnAMbHQoMCgQEDAIeEgSdAwIeCg0KBQQMAh4EEgSdAwIKCg0KBQQMAh4FEgSdAwsQCg0KBQQMAh4BEgSdAxEYCg0KBQQMAh4DEgSdAxsdCgwKBAQMAh8SBJ4DAh4KDQoFBAwCHwQSBJ4DAgoKDQoFBAwCHwUSBJ4DCxAKDQoFBAwCHwESBJ4DERgKDQoFBAwCHwMSBJ4DGx0KDAoEBAwCIBIEoAMCGAoNCgUEDAIgBBIEoAMCCgoNCgUEDAIgBRIEoAMLEAoNCgUEDAIgARIEoAMREgoNCgUE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BDECAQESBJ8GER8KDQoFBDECAQMSBJ8GIiQKDQoFBDECAQgSBJ8GJTUKDgoGBDECAQgCEgSfBiY0CgwKBAQxAgISBKAGAjgKDQoFBDECAgQSBKAGAgoKDQoFBDECAgUSBKAGCxEKDQoFBDECAgESBKAGEiEKDQoFBDECAgMSBKAGJCYKDQoFBDECAggSBKAGJzcKDgoGBDECAggCEgSgBig2CgwKBAQxAgMSBKEGAjgKDQoFBDECAwQSBKEGAgoKDQoFBDECAwUSBKEGCxEKDQoFBDECAwESBKEGEiEKDQoFBDECAwMSBKEGJCYKDQoFBDECAwgSBKEGJzcKDgoGBDECAwgCEgShBig2CgwKBAQxAgQSBKIGAjgKDQoFBDECBAQSBKIGAgoKDQoFBDECBAUSBKIGCxEKDQoFBDECBAESBKIGEiEKDQoFBDECBAMSBKIGJCYKDQoFBDECBAgSBKIGJzcKDgoGBDECBAgCEgSiBig2CgwKBAQxAgUSBKMGAjgKDQoFBDECBQQSBKMGAgoKDQoFBDECBQUSBKMGCxEKDQoFBDECBQESBKMGEiEKDQoFBDECBQMSBKMGJCYKDQoFBDECBQgSBKMGJzcKDgoGBDECBQgCEgSjBig2CgwKBAQxAgYSBKQGAjoKDQoFBDECBgQSBKQGAgoKDQoFBDECBgUSBKQGCxIKDQoFBDECBgESBKQGEyMKDQoFBDECBgMSBKQGJigKDQoFBDECBggSBKQGKTkKDgoGBDECBggCEgSkBio4CgwKBAQxAgcSBKUGAjoKDQoFBDECBwQSBKUGAgoKDQoFBDECBwUSBKUGCxIKDQoFBDECBwESBKUGEyMKDQoFBDECBwMSBKUGJigKDQoFBDECBwgSBKUGKTkKDgoGBDECBwgCEgSlBio4CgwKBAQxAggSBKYGAjwKDQoFBDECCAQSBKYGAgoKDQoFBDECCAUSBKYGCxMKDQoFBDECCAESBKYGFCUKDQoFBDECCAMSBKYGKCoKDQoFBDECCAgSBKYGKzsKDgoGBDECCAgCEgSmBiw6CgwKBAQxAgkSBKcGAjwKDQoFBDECCQQSBKcGAgoKDQoFBDECCQUSBKcGCxMKDQoFBDECCQESBKcGFCUKDQoFBDECCQMSBKcGKCoKDQoFBDECCQgSBKcGKzsKDgoGBDECCQgCEgSnBiw6CgwK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Cg0KBQUDAmMBEgTbCAIPCg0KBQUDAmMCEgTbCBIUCgwKBAUDAmQSBNwIAhcKDQoFBQMCZAESBNwIAhAKDQoFBQMCZAISBNwIExYKvxAKKGNzaGFycC9wcm90b3MvdW5pdHRlc3RfaXNzdWU2OTM2X2EucHJvdG8SD3VuaXR0ZXN0X2lzc3VlcxogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG86MwoDb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGNCGAyABKAlSA29wdEIdqgIaVW5pdFRlc3QuSXNzdWVzLlRlc3RQcm90b3NKgw8KBhIEHgAsAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIANwoJCgIIJRIDIgA3CsQBCgIDABIDKAAqMrgBIFRoaXMgZmlsZSBpcyB1c2VkIGFzIHBhcnQgb2YgYSB1bml0IHRlc3QgZm9yIGlzc3VlIDY5MzYKIFdlIGRvbid0IG5lZWQgdG8gdXNlIGl0LCB3ZSBqdXN0IGhhdmUgdG8gaW1wb3J0IGl0IGluIGJvdGgKICJleHRlbnNpb25zX2lzc3VlNjkzNl9iLnByb3RvIiBhbmQgImV4dGVuc2lvbnNfaXNzdWU2OTM2X2MucHJvdG8iCgoJCgEHEgQqACwBCgkKAgcAEgMrAhUKCgoDBwACEgMqByUKCgoDBwAFEgMrAggKCgoDBwABEgMrCQwKCgoDBwADEgMrDxRiBnByb3RvMwrlDwooY3NoYXJwL3Byb3Rvcy91bml0dGVzdF9pc3N1ZTY5MzZfYi5wcm90bxIPdW5pdHRlc3RfaXNzdWVzGihjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2lzc3VlNjkzNl9hLnByb3RvIg4KA0ZvbzoHgrUYA2Zvb0IdqgIaVW5pdFRlc3QuSXNzdWVzLlRlc3RQcm90b3NKxg4KBhIEHgAsAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCgkKAgMAEgMiADIKCAoBCBIDJAA3CgkKAgglEgMkADcKmwEKAgQAEgQqACwBMo4BIFRoaXMgZmlsZSBpcyB1c2VkIGFzIHBhcnQgb2YgYSB1bml0IHRlc3QgZm9yIGlzc3VlIDY5MzYKIFdlIGRvbid0IG5lZWQgdG8gdXNlIGl0LCB3ZSBqdXN0IGhhdmUgdG8gaW1wb3J0IGl0IGluCiAidW5pdHRlc3RfaXNzdWU2OTM2X2MucHJvdG8iCgoKCgMEAAESAyoICwoKCgMEAAcSAysCFwoNCgYEAAfQhgMSAysCF2IGcHJvdG8zCuAQCihjc2hhcnAvcHJvdG9zL3VuaXR0ZXN0X2lzc3VlNjkzNl9jLnByb3RvEg91bml0dGVzdF9pc3N1ZXMaKGNzaGFycC9wcm90b3MvdW5pdHRlc3RfaXNzdWU2OTM2X2EucHJvdG8aKGNzaGFycC9wcm90b3MvdW5pdHRlc3RfaXNzdWU2OTM2X2IucHJvdG8iNgoDQmFyEiYKA2ZvbxgBIAEoCzIULnVuaXR0ZXN0X2lzc3Vlcy5Gb29SA2ZvbzoHgrUYA2JhckIdqgIaVW5pdFRlc3QuSXNzdWVzLlRlc3RQcm90b3NK7w4KBhIEHgAuAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCgkKAgMAEgMiADIKCQoCAwESAyMAMgoICgEIEgMlADcKCQoCCCUSAyUANwqCAQoCBAASBCoALgEydiBUaGlzIGZpbGUgaXMgdXNlZCBhcyBwYXJ0IG9mIGEgdW5pdCB0ZXN0IGZvciBpc3N1ZSA2OTM2CiBXZSBkb24ndCBuZWVkIHRvIHVzZSBpdCwgd2UganVzdCBoYXZlIHRvIGxvYWQgaXQgYXQgcnVudGltZQoKCgoDBAABEgMqCAsKCgoDBAAHEgMrAhcKDQoGBAAH0IYDEgMrAhcKCwoEBAACABIDLQIOCgwKBQQAAgAGEgMtAgUKDAoFBAACAAESAy0GCQoMCgUEAAIAAxIDLQwNYgZwcm90bzMK8xgKNGNzaGFycC9wcm90b3MvdW5pdHRlc3Rfc2VsZnJlZmVyZW50aWFsX29wdGlvbnMucHJvdG8SKXByb3RvYnVmX3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zGiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90byJZCgpGb29PcHRpb25zEiYKB2ludF9vcHQYASABKAVCDco+CggBwD4Cyj4CCANSBmludE9wdBIYCgNmb28YAiABKAVCBso+AxDSCVIDZm9vKgkI6AcQgICAgAI6RQoLYmFyX29wdGlvbnMSHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zGOgHIAEoBUIEwD7SCVIKYmFyT3B0aW9uczp2Cgtmb29fb3B0aW9ucxIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY6QcgASgLMjUucHJvdG9idWZfdW5pdHRlc3Rfc2VsZnJlZmVyZW50aWFsX29wdGlvbnMuRm9vT3B0aW9uc1IKZm9vT3B0aW9uczpWCgtmb29faW50X29wdBI1LnByb3RvYnVmX3VuaXR0ZXN0X3NlbGZyZWZlcmVudGlhbF9vcHRpb25zLkZvb09wdGlvbnMY6AcgASgFUglmb29JbnRPcHQ6jQEKC2Zvb19mb29fb3B0EjUucHJvdG9idWZfdW5pdHRlc3Rfc2VsZnJlZmVyZW50aWFsX29wdGlvbnMuRm9vT3B0aW9ucxjpByABKAsyNS5wcm90b2J1Zl91bml0dGVzdF9zZWxmcmVmZXJlbnRpYWxfb3B0aW9ucy5Gb29PcHRpb25zUglmb29Gb29PcHRCNKoCMVVuaXRUZXN0Lklzc3Vlcy5UZXN0UHJvdG9zLlNlbGZyZWZlcmVudGlhbE9wdGlvbnNKtRMKBhIEHgA+AQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAyCgkKAgMAEgMiACoKCAoBCBIDJABOCgkKAgglEgMkAE4KCgoCBAASBCYAMgEKCgoDBAABEgMmCBIKUAoEBAACABIEKAIsBRpCIEN1c3RvbSBmaWVsZCBvcHRpb24gdXNlZCBpbiBkZWZpbml0aW9uIG9mIHRoZSBleHRlbnNpb24gbWVzc2FnZS4KCgwKBQQAAgAEEgMoAgoKDAoFBAACAAUSAygLEAoMCgUEAAIAARIDKBEYCgwKBQQAAgADEgMoGxwKDQoFBAACAAgSBCgdLAQKDwoHBAACAAjpBxIEKB4sAwpVCgQEAAIBEgMvAjkaSCBDdXN0b20gZmllbGQgb3B0aW9uIHVzZWQgaW4gZGVmaW5pdGlvbiBvZiB0aGUgY3VzdG9tIG9wdGlvbidzIG1lc3NhZ2UuCgoMCgUEAAIBBBIDLwIKCgwKBQQAAgEFEgMvCxAKDAoFBAACAQESAy8RFAoMCgUEAAIBAxIDLxcYCgwKBQQAAgEIEgMvGTgKDgoHBAACAQjpBxIDLxo3CgoKAwQABRIDMQIZCgsKBAQABQASAzENGAoMCgUEAAUAARIDMQ0RCgwKBQQABQACEgMxFRgKCQoBBxIENAA5AQpNCgIHABIDNgI7GkIgQ3VzdG9tIGZpZWxkIG9wdGlvbiB1c2VkIG9uIHRoZSBkZWZpbml0aW9uIG9mIHRoYXQgZmllbGQgb3B0aW9uLgoKCgoDBwACEgM0ByMKCgoDBwAEEgM2AgoKCgoDBwAFEgM2CxAKCgoDBwABEgM2ERwKCgoDBwADEgM2HyMKCgoDBwAIEgM2JDoKDAoFBwAI6AcSAzYlOQoJCgIHARIDOAIpCgoKAwcBAhIDNAcjCgoKAwcBBBIDOAIKCgoKAwcBBhIDOAsVCgoKAwcBARIDOBYhCgoKAwcBAxIDOCQoCgkKAQcSBDsAPgEKCQoCBwISAzwCJAoKCgMHAgISAzsHEQoKCgMHAgQSAzwCCgoKCgMHAgUSAzwLEAoKCgMHAgESAzwRHAoKCgMHAgMSAzwfIwoJCgIHAxIDPQIpCgoKAwcDAhIDOwcRCgoKAwcDBBIDPQIKCgoKAwcDBhIDPQsVCgoKAwcDARIDPRYhCgoKAwcDAxIDPSQoCt8tChlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiNgoDQW55EhkKCHR5cGVfdXJsGAEgASgJUgd0eXBlVXJsEhQKBXZhbHVlGAIgASgMUgV2YWx1ZUJ2ChNjb20uZ29vZ2xlLnByb3RvYnVmQghBbnlQcm90b1ABWixnb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi9hbnlwYqICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0r4KwoHEgUeAKABAQrMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAQwoJCgIICxIDIgBDCggKAQgSAyMALAoJCgIIARIDIwAsCggKAQgSAyQAKQoJCgIICBIDJAApCggKAQgSAyUAIgoJCgIIChIDJQAiCggKAQgSAyYAIQoJCgIIJBIDJgAhCggKAQgSAycAOwoJCgIIJRIDJwA7CvwRCgIEABIFfwCgAQEa7hEgYEFueWAgY29udGFpbnMgYW4gYXJiaXRyYXJ5IHNlcmlhbGl6ZWQgcHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2UgYWxvbmcgd2l0aCBhCiBVUkwgdGhhdCBkZXNjcmliZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQgbWVzc2FnZS4KCiBQcm90b2J1ZiBsaWJyYXJ5IHByb3ZpZGVzIHN1cHBvcnQgdG8gcGFjay91bnBhY2sgQW55IHZhbHVlcyBpbiB0aGUgZm9ybQogb2YgdXRpbGl0eSBmdW5jdGlvbnMgb3IgYWRkaXRpb25hbCBnZW5lcmF0ZWQgbWV0aG9kcyBvZiB0aGUgQW55IHR5cGUuCgogRXhhbXBsZSAxOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEMrKy4KCiAgICAgRm9vIGZvbyA9IC4uLjsKICAgICBBbnkgYW55OwogICAgIGFueS5QYWNrRnJvbShmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuVW5wYWNrVG8oJmZvbykpIHsKICAgICAgIC4uLgogICAgIH0KCiBFeGFtcGxlIDI6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gSmF2YS4KCiAgICAgRm9vIGZvbyA9IC4uLjsKICAgICBBbnkgYW55ID0gQW55LnBhY2soZm9vKTsKICAgICAuLi4KICAgICBpZiAoYW55LmlzKEZvby5jbGFzcykpIHsKICAgICAgIGZvbyA9IGFueS51bnBhY2soRm9vLmNsYXNzKTsKICAgICB9CiAgICAgLy8gb3IgLi4uCiAgICAgaWYgKGFueS5pc1NhbWVUeXBlQXMoRm9vLmdldERlZmF1bHRJbnN0YW5jZSgpKSkgewogICAgICAgZm9vID0gYW55LnVucGFjayhGb28uZ2V0RGVmYXVsdEluc3RhbmNlKCkpOwogICAgIH0KCiAgRXhhbXBsZSAzOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIFB5dGhvbi4KCiAgICAgZm9vID0gRm9vKC4uLikKICAgICBhbnkgPSBBbnkoKQogICAgIGFueS5QYWNrKGZvbykKICAgICAuLi4KICAgICBpZiBhbnkuSXMoRm9vLkRFU0NSSVBUT1IpOgogICAgICAgYW55LlVucGFjayhmb28pCiAgICAgICAuLi4KCiAgRXhhbXBsZSA0OiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEdvCgogICAgICBmb28gOj0gJnBiLkZvb3suLi59CiAgICAgIGFueSwgZXJyIDo9IGFueXBiLk5ldyhmb28pCiAgICAgIGlmIGVyciAhPSBuaWwgewogICAgICAgIC4uLgogICAgICB9CiAgICAgIC4uLgogICAgICBmb28gOj0gJnBiLkZvb3t9CiAgICAgIGlmIGVyciA6PSBhbnkuVW5tYXJzaGFsVG8oZm9vKTsgZXJyICE9IG5pbCB7CiAgICAgICAgLi4uCiAgICAgIH0KCiBUaGUgcGFjayBtZXRob2RzIHByb3ZpZGVkIGJ5IHByb3RvYnVmIGxpYnJhcnkgd2lsbCBieSBkZWZhdWx0IHVzZQogJ3R5cGUuZ29vZ2xlYXBpcy5jb20vZnVsbC50eXBlLm5hbWUnIGFzIHRoZSB0eXBlIFVSTCBhbmQgdGhlIHVucGFjawogbWV0aG9kcyBvbmx5IHVzZSB0aGUgZnVsbHkgcXVhbGlmaWVkIHR5cGUgbmFtZSBhZnRlciB0aGUgbGFzdCAnLycKIGluIHRoZSB0eXBlIFVSTCwgZm9yIGV4YW1wbGUgImZvby5iYXIuY29tL3gveS56IiB3aWxsIHlpZWxkIHR5cGUKIG5hbWUgInkueiIuCgogSlNPTgogPT09PQogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYW4gYEFueWAgdmFsdWUgdXNlcyB0aGUgcmVndWxhcgogcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlc2VyaWFsaXplZCwgZW1iZWRkZWQgbWVzc2FnZSwgd2l0aCBhbgogYWRkaXRpb25hbCBmaWVsZCBgQHR5cGVgIHdoaWNoIGNvbnRhaW5zIHRoZSB0eXBlIFVSTC4gRXhhbXBsZToKCiAgICAgcGFja2FnZSBnb29nbGUucHJvZmlsZTsKICAgICBtZXNzYWdlIFBlcnNvbiB7CiAgICAgICBzdHJpbmcgZmlyc3RfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgbGFzdF9uYW1lID0gMjsKICAgICB9CgogICAgIHsKICAgICAgICJAdHlwZSI6ICJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wcm9maWxlLlBlcnNvbiIsCiAgICAgICAiZmlyc3ROYW1lIjogPHN0cmluZz4sCiAgICAgICAibGFzdE5hbWUiOiA8c3RyaW5nPgogICAgIH0KCiBJZiB0aGUgZW1iZWRkZWQgbWVzc2FnZSB0eXBlIGlzIHdlbGwta25vd24gYW5kIGhhcyBhIGN1c3RvbSBKU09OCiByZXByZXNlbnRhdGlvbiwgdGhhdCByZXByZXNlbnRhdGlvbiB3aWxsIGJlIGVtYmVkZGVkIGFkZGluZyBhIGZpZWxkCiBgdmFsdWVgIHdoaWNoIGhvbGRzIHRoZSBjdXN0b20gSlNPTiBpbiBhZGRpdGlvbiB0byB0aGUgYEB0eXBlYAogZmllbGQuIEV4YW1wbGUgKGZvciBtZXNzYWdlIFtnb29nbGUucHJvdG9idWYuRHVyYXRpb25dW10pOgoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvdG9idWYuRHVyYXRpb24iLAogICAgICAgInZhbHVlIjogIjEuMjEycyIKICAgICB9CgoKCgoDBAABEgN/CAsK1woKBAQAAgASBJwBAhYayAogQSBVUkwvcmVzb3VyY2UgbmFtZSB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQKIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlLiBUaGlzIHN0cmluZyBtdXN0IGNvbnRhaW4gYXQgbGVhc3QKIG9uZSAiLyIgY2hhcmFjdGVyLiBUaGUgbGFzdCBzZWdtZW50IG9mIHRoZSBVUkwncyBwYXRoIG11c3QgcmVwcmVzZW50CiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHR5cGUgKGFzIGluCiBgcGF0aC9nb29nbGUucHJvdG9idWYuRHVyYXRpb25gKS4gVGhlIG5hbWUgc2hvdWxkIGJlIGluIGEgY2Fub25pY2FsIGZvcm0KIChlLmcuLCBsZWFkaW5nICIuIiBpcyBub3QgYWNjZXB0ZWQpLgoKIEluIHByYWN0aWNlLCB0ZWFtcyB1c3VhbGx5IHByZWNvbXBpbGUgaW50byB0aGUgYmluYXJ5IGFsbCB0eXBlcyB0aGF0IHRoZXkKIGV4cGVjdCBpdCB0byB1c2UgaW4gdGhlIGNvbnRleHQgb2YgQW55LiBIb3dldmVyLCBmb3IgVVJMcyB3aGljaCB1c2UgdGhlCiBzY2hlbWUgYGh0dHBgLCBgaHR0cHNgLCBvciBubyBzY2hlbWUsIG9uZSBjYW4gb3B0aW9uYWxseSBzZXQgdXAgYSB0eXBlCiBzZXJ2ZXIgdGhhdCBtYXBzIHR5cGUgVVJMcyB0byBtZXNzYWdlIGRlZmluaXRpb25zIGFzIGZvbGxvd3M6CgogKiBJZiBubyBzY2hlbWUgaXMgcHJvdmlkZWQsIGBodHRwc2AgaXMgYXNzdW1lZC4KICogQW4gSFRUUCBHRVQgb24gdGhlIFVSTCBtdXN0IHlpZWxkIGEgW2dvb2dsZS5wcm90b2J1Zi5UeXBlXVtdCiAgIHZhbHVlIGluIGJpbmFyeSBmb3JtYXQsIG9yIHByb2R1Y2UgYW4gZXJyb3IuCiAqIEFwcGxpY2F0aW9ucyBhcmUgYWxsb3dlZCB0byBjYWNoZSBsb29rdXAgcmVzdWx0cyBiYXNlZCBvbiB0aGUKICAgVVJMLCBvciBoYXZlIHRoZW0gcHJlY29tcGlsZWQgaW50byBhIGJpbmFyeSB0byBhdm9pZCBhbnkKICAgbG9va3VwLiBUaGVyZWZvcmUsIGJpbmFyeSBjb21wYXRpYmlsaXR5IG5lZWRzIHRvIGJlIHByZXNlcnZlZAogICBvbiBjaGFuZ2VzIHRvIHR5cGVzLiAoVXNlIHZlcnNpb25lZCB0eXBlIG5hbWVzIHRvIG1hbmFnZQogICBicmVha2luZyBjaGFuZ2VzLikKCiBOb3RlOiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGN1cnJlbnRseSBhdmFpbGFibGUgaW4gdGhlIG9mZmljaWFsCiBwcm90b2J1ZiByZWxlYXNlLCBhbmQgaXQgaXMgbm90IHVzZWQgZm9yIHR5cGUgVVJMcyBiZWdpbm5pbmcgd2l0aAogdHlwZS5nb29nbGVhcGlzLmNvbS4KCiBTY2hlbWVzIG90aGVyIHRoYW4gYGh0dHBgLCBgaHR0cHNgIChvciB0aGUgZW1wdHkgc2NoZW1lKSBtaWdodCBiZQogdXNlZCB3aXRoIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHNlbWFudGljcy4KCgoNCgUEAAIABRIEnAECCAoNCgUEAAIAARIEnAEJEQoNCgUEAAIAAxIEnAEUFQpXCgQEAAIBEgSfAQISGkkgTXVzdCBiZSBhIHZhbGlkIHNlcmlhbGl6ZWQgcHJvdG9jb2wgYnVmZmVyIG9mIHRoZSBhYm92ZSBzcGVjaWZpZWQgdHlwZS4KCg0KBQQAAgEFEgSfAQIHCg0KBQQAAgEBEgSfAQgNCg0KBQQAAgEDEgSfARARYgZwcm90bzMKvhIKJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIiwKDVNvdXJjZUNvbnRleHQSGwoJZmlsZV9uYW1lGAEgASgJUghmaWxlTmFtZUKKAQoTY29tLmdvb2dsZS5wcm90b2J1ZkISU291cmNlQ29udGV4dFByb3RvUAFaNmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3NvdXJjZWNvbnRleHRwYqICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rBEAoGEgQeAC8BCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAsCgkKAggBEgMiACwKCAoBCBIDIwAzCgkKAggIEgMjADMKCAoBCBIDJAAiCgkKAggKEgMkACIKCAoBCBIDJQAhCgkKAggkEgMlACEKCAoBCBIDJgA7CgkKAgglEgMmADsKCAoBCBIDJwBNCgkKAggLEgMnAE0KgwEKAgQAEgQrAC8BGncgYFNvdXJjZUNvbnRleHRgIHJlcHJlc2VudHMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNvdXJjZSBvZiBhCiBwcm90b2J1ZiBlbGVtZW50LCBsaWtlIHRoZSBmaWxlIGluIHdoaWNoIGl0IGlzIGRlZmluZWQuCgoKCgMEAAESAysIFQqjAQoEBAACABIDLgIXGpUBIFRoZSBwYXRoLXF1YWxpZmllZCBuYW1lIG9mIHRoZSAucHJvdG8gZmlsZSB0aGF0IGNvbnRhaW5lZCB0aGUgYXNzb2NpYXRlZAogcHJvdG9idWYgZWxlbWVudC4gIEZvciBleGFtcGxlOiBgImdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90byJgLgoKDAoFBAACAAUSAy4CCAoMCgUEAAIAARIDLgkSCgwKBQQAAgADEgMuFRZiBnByb3RvMwr7SQoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8SD2dvb2dsZS5wcm90b2J1ZhoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxokZ29vZ2xlL3Byb3RvYnVmL3NvdXJjZV9jb250ZXh0LnByb3RvIqcCCgRUeXBlEhIKBG5hbWUYASABKAlSBG5hbWUSLgoGZmllbGRzGAIgAygLMhYuZ29vZ2xlLnByb3RvYnVmLkZpZWxkUgZmaWVsZHMSFgoGb25lb2ZzGAMgAygJUgZvbmVvZnMSMQoHb3B0aW9ucxgEIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSRQoOc291cmNlX2NvbnRleHQYBSABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIvCgZzeW50YXgYBiABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgSGAoHZWRpdGlvbhgHIAEoCVIHZWRpdGlvbiK0BgoFRmllbGQSLwoEa2luZBgBIAEoDjIbLmdvb2dsZS5wcm90b2J1Zi5GaWVsZC5LaW5kUgRraW5kEkQKC2NhcmRpbmFsaXR5GAIgASgOMiIuZ29vZ2xlLnByb3RvYnVmLkZpZWxkLkNhcmRpbmFsaXR5UgtjYXJkaW5hbGl0eRIWCgZudW1iZXIYAyABKAVSBm51bWJlchISCgRuYW1lGAQgASgJUgRuYW1lEhkKCHR5cGVfdXJsGAYgASgJUgd0eXBlVXJsEh8KC29uZW9mX2luZGV4GAcgASgFUgpvbmVvZkluZGV4EhYKBnBhY2tlZBgIIAEoCFIGcGFja2VkEjEKB29wdGlvbnMYCSADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEhsKCWpzb25fbmFtZRgKIAEoCVIIanNvbk5hbWUSIwoNZGVmYXVsdF92YWx1ZRgLIAEoCVIMZGVmYXVsdFZhbHVlIsgCCgRLaW5kEhAKDFRZUEVfVU5LTk9XThAAEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJ0CgtDYXJkaW5hbGl0eRIXChNDQVJESU5BTElUWV9VTktOT1dOEAASGAoUQ0FSRElOQUxJVFlfT1BUSU9OQUwQARIYChRDQVJESU5BTElUWV9SRVFVSVJFRBACEhgKFENBUkRJTkFMSVRZX1JFUEVBVEVEEAMimQIKBEVudW0SEgoEbmFtZRgBIAEoCVIEbmFtZRI4CgllbnVtdmFsdWUYAiADKAsyGi5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlUgllbnVtdmFsdWUSMQoHb3B0aW9ucxgDIAMoCzIXLmdvb2dsZS5wcm90b2J1Zi5PcHRpb25SB29wdGlvbnMSRQoOc291cmNlX2NvbnRleHQYBCABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIvCgZzeW50YXgYBSABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgSGAoHZWRpdGlvbhgGIAEoCVIHZWRpdGlvbiJqCglFbnVtVmFsdWUSEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAiABKAVSBm51bWJlchIxCgdvcHRpb25zGAMgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucyJICgZPcHRpb24SEgoEbmFtZRgBIAEoCVIEbmFtZRIqCgV2YWx1ZRgCIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBXZhbHVlKkMKBlN5bnRheBIRCg1TWU5UQVhfUFJPVE8yEAASEQoNU1lOVEFYX1BST1RPMxABEhMKD1NZTlRBWF9FRElUSU9OUxACQnsKE2NvbS5nb29nbGUucHJvdG9idWZCCVR5cGVQcm90b1ABWi1nb29nbGUuZ29sYW5nLm9yZy9wcm90b2J1Zi90eXBlcy9rbm93bi90eXBlcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKjTsKBxIFHgDAAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ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Y29sIGJ1ZmZlciBlbGVtZW50IGlzIGRlZmluZWQuCgoLCgMFAAESBLkBBQsKIAoEBQACABIEuwECFBoSIFN5bnRheCBgcHJvdG8yYC4KCg0KBQUAAgABEgS7AQIPCg0KBQUAAgACEgS7ARITCiAKBAUAAgESBL0BAhQaEiBTeW50YXggYHByb3RvM2AuCgoNCgUFAAIBARIEvQECDwoNCgUFAAIBAhIEvQESEwoiCgQFAAICEgS/AQIWGhQgU3ludGF4IGBlZGl0aW9uc2AuCgoNCgUFAAICARIEvwECEQoNCgUFAAICAhIEvwEUFWIGcHJvdG8zCppDChlnb29nbGUvcHJvdG9idWYvYXBpLnByb3RvEg9nb29nbGUucHJvdG9idWYaJGdvb2dsZS9wcm90b2J1Zi9zb3VyY2VfY29udGV4dC5wcm90bxoaZ29vZ2xlL3Byb3RvYnVmL3R5cGUucHJvdG8iwQIKA0FwaRISCgRuYW1lGAEgASgJUgRuYW1lEjEKB21ldGhvZHMYAiADKAsyFy5nb29nbGUucHJvdG9idWYuTWV0aG9kUgdtZXRob2RzEjEKB29wdGlvbnMYAyADKAsyFy5nb29nbGUucHJvdG9idWYuT3B0aW9uUgdvcHRpb25zEhgKB3ZlcnNpb24YBCABKAlSB3ZlcnNpb24SRQoOc291cmNlX2NvbnRleHQYBSABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFINc291cmNlQ29udGV4dBIuCgZtaXhpbnMYBiADKAsyFi5nb29nbGUucHJvdG9idWYuTWl4aW5SBm1peGlucxIvCgZzeW50YXgYByABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgisgIKBk1ldGhvZBISCgRuYW1lGAEgASgJUgRuYW1lEigKEHJlcXVlc3RfdHlwZV91cmwYAiABKAlSDnJlcXVlc3RUeXBlVXJsEisKEXJlcXVlc3Rfc3RyZWFtaW5nGAMgASgIUhByZXF1ZXN0U3RyZWFtaW5nEioKEXJlc3BvbnNlX3R5cGVfdXJsGAQgASgJUg9yZXNwb25zZVR5cGVVcmwSLQoScmVzcG9uc2Vfc3RyZWFtaW5nGAUgASgIUhFyZXNwb25zZVN0cmVhbWluZxIxCgdvcHRpb25zGAYgAygLMhcuZ29vZ2xlLnByb3RvYnVmLk9wdGlvblIHb3B0aW9ucxIvCgZzeW50YXgYByABKA4yFy5nb29nbGUucHJvdG9idWYuU3ludGF4UgZzeW50YXgiLwoFTWl4aW4SEgoEbmFtZRgBIAEoCVIEbmFtZRISCgRyb290GAIgASgJUgRyb290QnYKE2NvbS5nb29nbGUucHJvdG9idWZCCEFwaVByb3RvUAFaLGdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2FwaXBiogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSv87CgcSBR4AzgEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCQoCAwASAyIALgoJCgIDARIDIwAkCggKAQgSAyUALAoJCgIIARIDJQAsCggKAQgSAyYAKQoJCgIICBIDJgApCggKAQgSAycAIgoJCgIIChIDJwAiCggKAQgSAygAIQoJCgIIJBIDKAAhCggKAQgSAykAOwoJCgIIJRIDKQA7CggKAQgSAyoAQwoJCgIICxIDKgBDCqsECgIEABIENQBfARqeBCBBcGkgaXMgYSBsaWdodC13ZWlnaHQgZGVzY3JpcHRvciBmb3IgYW4gQVBJIEludGVyZmFjZS4KCiBJbnRlcmZhY2VzIGFyZSBhbHNvIGRlc2NyaWJlZCBhcyAicHJvdG9jb2wgYnVmZmVyIHNlcnZpY2VzIiBpbiBzb21lIGNvbnRleHRzLAogc3VjaCBhcyBieSB0aGUgInNlcnZpY2UiIGtleXdvcmQgaW4gYSAucHJvdG8gZmlsZSwgYnV0IHRoZXkgYXJlIGRpZmZlcmVudAogZnJvbSBBUEkgU2VydmljZXMsIHdoaWNoIHJlcHJlc2VudCBhIGNvbmNyZXRlIGltcGxlbWVudGF0aW9uIG9mIGFuIGludGVyZmFjZQogYXMgb3Bwb3NlZCB0byBzaW1wbHkgYSBkZXNjcmlwdGlvbiBvZiBtZXRob2RzIGFuZCBiaW5kaW5ncy4gVGhleSBhcmUgYWxzbwogc29tZXRpbWVzIHNpbXBseSByZWZlcnJlZCB0byBhcyAiQVBJcyIgaW4gb3RoZXIgY29udGV4dHMsIHN1Y2ggYXMgdGhlIG5hbWUgb2YKIHRoaXMgbWVzc2FnZSBpdHNlbGYuIFNlZSBodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vYXBpcy9kZXNpZ24vZ2xvc3NhcnkgZm9yCiBkZXRhaWxlZCB0ZXJtaW5vbG9neS4KCgoKAwQAARIDNQgLCnsKBAQAAgASAzgCEhpuIFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGlzIGludGVyZmFjZSwgaW5jbHVkaW5nIHBhY2thZ2UgbmFtZQog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bnQgYW5kIHdoaXRlc3BhY2Ugc3RyaXBwaW5nLCB0aGUgZG9jdW1lbnRhdGlvbgogICBzdHJpbmcgb2YgdGhlIHJlZGVjbGFyZWQgbWV0aG9kIGlzIGVtcHR5LCBpdCB3aWxsIGJlIGluaGVyaXRlZAogICBmcm9tIHRoZSBvcmlnaW5hbCBtZXRob2QuCgogLSBFYWNoIGFubm90YXRpb24gYmVsb25naW5nIHRvIHRoZSBzZXJ2aWNlIGNvbmZpZyAoaHR0cCwKICAgdmlzaWJpbGl0eSkgd2hpY2ggaXMgbm90IHNldCBpbiB0aGUgcmVkZWNsYXJlZCBtZXRob2Qgd2lsbCBiZQogICBpbmhlcml0ZWQuCgogLSBJZiBhbiBodHRwIGFubm90YXRpb24gaXMgaW5oZXJpdGVkLCB0aGUgcGF0aCBwYXR0ZXJuIHdpbGwgYmUKICAgbW9kaWZpZWQgYXMgZm9sbG93cy4gQW55IHZlcnNpb24gcHJlZml4IHdpbGwgYmUgcmVwbGFjZWQgYnkgdGhlCiAgIHZlcnNpb24gb2YgdGhlIGluY2x1ZGluZyBpbnRlcmZhY2UgcGx1cyB0aGUgW3Jvb3RdW10gcGF0aCBpZgogICBzcGVjaWZpZWQuCgogRXhhbXBsZSBvZiBhIHNpbXBsZSBtaXhpbjoKCiAgICAgcGFja2FnZSBnb29nbGUuYWNsLnYxOwogICAgIHNlcnZpY2UgQWNjZXNzQ29udHJvbCB7CiAgICAgICAvLyBHZXQgdGhlIHVuZGVybHlpbmcgQUNMIG9iamVjdC4KICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YxL3tyZXNvdXJjZT0qKn06Z2V0QWNsIjsKICAgICAgIH0KICAgICB9CgogICAgIHBhY2thZ2UgZ29vZ2xlLnN0b3JhZ2UudjI7CiAgICAgc2VydmljZSBTdG9yYWdlIHsKICAgICAgIHJwYyBHZXRBY2woR2V0QWNsUmVxdWVzdCkgcmV0dXJucyAoQWNsKTsKCiAgICAgICAvLyBHZXQgYSBkYXRhIHJlY29yZC4KICAgICAgIHJwYyBHZXREYXRhKEdldERhdGFSZXF1ZXN0KSByZXR1cm5zIChEYXRhKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKS5nZXQgPSAiL3YyL3tyZXNvdXJjZT0qKn0iOwogICAgICAgfQogICAgIH0KCiBFeGFtcGxlIG9mIGEgbWl4aW4gY29uZmlndXJhdGlvbjoKCiAgICAgYXBpczoKICAgICAtIG5hbWU6IGdvb2dsZS5zdG9yYWdlLnYyLlN0b3JhZ2UKICAgICAgIG1peGluczoKICAgICAgIC0gbmFtZTogZ29vZ2xlLmFjbC52MS5BY2Nlc3NDb250cm9sCgogVGhlIG1peGluIGNvbnN0cnVjdCBpbXBsaWVzIHRoYXQgYWxsIG1ldGhvZHMgaW4gYEFjY2Vzc0NvbnRyb2xgIGFyZQogYWxzbyBkZWNsYXJlZCB3aXRoIHNhbWUgbmFtZSBhbmQgcmVxdWVzdC9yZXNwb25zZSB0eXBlcyBpbgogYFN0b3JhZ2VgLiBBIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yIG9yIGFubm90YXRpb24gcHJvY2Vzc29yIHdpbGwKIHNlZSB0aGUgZWZmZWN0aXZlIGBTdG9yYWdlLkdldEFjbGAgbWV0aG9kIGFmdGVyIGluaGVydGluZwogZG9jdW1lbnRhdGlvbiBhbmQgYW5ub3RhdGlvbnMgYXMgZm9sbG93czoKCiAgICAgc2VydmljZSBTdG9yYWdlIHsKICAgICAgIC8vIEdldCB0aGUgdW5kZXJseWluZyBBQ0wgb2JqZWN0LgogICAgICAgcnBjIEdldEFjbChHZXRBY2xSZXF1ZXN0KSByZXR1cm5zIChBY2wpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApLmdldCA9ICIvdjIve3Jlc291cmNlPSoqfTpnZXRBY2wiOwogICAgICAgfQogICAgICAgLi4uCiAgICAgfQoKIE5vdGUgaG93IHRoZSB2ZXJzaW9uIGluIHRoZSBwYXRoIHBhdHRlcm4gY2hhbmdlZCBmcm9tIGB2MWAgdG8gYHYyYC4KCiBJZiB0aGUgYHJvb3RgIGZpZWxkIGluIHRoZSBtaXhpbiBpcyBzcGVjaWZpZWQsIGl0IHNob3VsZCBiZSBhCiByZWxhdGl2ZSBwYXRoIHVuZGVyIHdoaWNoIGluaGVyaXRlZCBIVFRQIHBhdGhzIGFyZSBwbGFjZWQuIEV4YW1wbGU6CgogICAgIGFwaXM6CiAgICAgLSBuYW1lOiBnb29nbGUuc3RvcmFnZS52Mi5TdG9yYWdlCiAgICAgICBtaXhpbnM6CiAgICAgICAtIG5hbWU6IGdvb2dsZS5hY2wudjEuQWNjZXNzQ29udHJvbAogICAgICAgICByb290OiBhY2xzCgogVGhpcyBpbXBsaWVzIHRoZSBmb2xsb3dpbmcgaW5oZXJpdGVkIEhUVFAgYW5ub3RhdGlvbjoKCiAgICAgc2VydmljZSBTdG9yYWdlIHsKICAgICAgIC8vIEdldCB0aGUgdW5kZXJseWluZyBBQ0wgb2JqZWN0LgogICAgICAgcnBjIEdldEFjbChHZXRBY2xSZXF1ZXN0KSByZXR1cm5zIChBY2wpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApLmdldCA9ICIvdjIvYWNscy97cmVzb3VyY2U9Kip9OmdldEFjbCI7CiAgICAgICB9CiAgICAgICAuLi4KICAgICB9CgoLCgMEAgESBMcBCA0KTAoEBAICABIEyQECEho+IFRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvZiB0aGUgaW50ZXJmYWNlIHdoaWNoIGlzIGluY2x1ZGVkLgoKDQoFBAICAAUSBMkBAggKDQoFBAICAAESBMkBCQ0KDQoFBAICAAMSBMkBEBEKWwoEBAICARIEzQECEhpNIElmIG5vbi1lbXB0eSBzcGVjaWZpZXMgYSBwYXRoIHVuZGVyIHdoaWNoIGluaGVyaXRlZCBIVFRQIHBhdGhzCiBhcmUgcm9vdGVkLgoKDQoFBAICAQUSBM0BAggKDQoFBAICAQESBM0BCQ0KDQoFBAICAQMSBM0BEBFiBnByb3RvMwrXJQoeZ29vZ2xlL3Byb3RvYnVmL2R1cmF0aW9uLnByb3RvEg9nb29nbGUucHJvdG9idWYiOgoIRHVyYXRpb24SGAoHc2Vjb25kcxgBIAEoA1IHc2Vjb25kcxIUCgVuYW5vcxgCIAEoBVIFbmFub3NCgwEKE2NvbS5nb29nbGUucHJvdG9idWZCDUR1cmF0aW9uUHJvdG9QAVoxZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vZHVyYXRpb25wYvgBAaICA0dQQqoCHkdvb2dsZS5Qcm90b2J1Zi5XZWxsS25vd25UeXBlc0rZIwoGEgQeAHIBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAfCgkKAggfEgMiAB8KCAoBCBIDIwBICgkKAggLEgMjAEgKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQAuCgkKAggIEgMlAC4KCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEKCAoBCBIDKAA7CgkKAgglEgMoADsKnRAKAgQAEgRlAHIBGpAQIEEgRHVyYXRpb24gcmVwcmVzZW50cyBhIHNpZ25lZCwgZml4ZWQtbGVuZ3RoIHNwYW4gb2YgdGltZSByZXByZXNlbnRlZAogYXMgYSBjb3VudCBvZiBzZWNvbmRzIGFuZCBmcmFjdGlvbnMgb2Ygc2Vjb25kcyBhdCBuYW5vc2Vjb25kCiByZXNvbHV0aW9uLiBJdCBpcyBpbmRlcGVuZGVudCBvZiBhbnkgY2FsZW5kYXIgYW5kIGNvbmNlcHRzIGxpa2UgImRheSIKIG9yICJtb250aCIuIEl0IGlzIHJlbGF0ZWQgdG8gVGltZXN0YW1wIGluIHRoYXQgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbgogdHdvIFRpbWVzdGFtcCB2YWx1ZXMgaXMgYSBEdXJhdGlvbiBhbmQgaXQgY2FuIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQKIGZyb20gYSBUaW1lc3RhbXAuIFJhbmdlIGlzIGFwcHJveGltYXRlbHkgKy0xMCwwMDAgeWVhcnMuCgogIyBFeGFtcGxlcwoKIEV4YW1wbGUgMTogQ29tcHV0ZSBEdXJhdGlvbiBmcm9tIHR3byBUaW1lc3RhbXBzIGluIHBzZXVkbyBjb2RlLgoKICAgICBUaW1lc3RhbXAgc3RhcnQgPSAuLi47CiAgICAgVGltZXN0YW1wIGVuZCA9IC4uLjsKICAgICBEdXJhdGlvbiBkdXJhdGlvbiA9IC4uLjsKCiAgICAgZHVyYXRpb24uc2Vjb25kcyA9IGVuZC5zZWNvbmRzIC0gc3RhcnQuc2Vjb25kczsKICAgICBkdXJhdGlvbi5uYW5vcyA9IGVuZC5uYW5vcyAtIHN0YXJ0Lm5hbm9zOwoKICAgICBpZiAoZHVyYXRpb24uc2Vjb25kcyA8IDAgJiYgZHVyYXRpb24ubmFub3MgPiAwKSB7CiAgICAgICBkdXJhdGlvbi5zZWNvbmRzICs9IDE7CiAgICAgICBkdXJhdGlvbi5uYW5vcyAtPSAxMDAwMDAwMDAwOwogICAgIH0gZWxzZSBpZiAoZHVyYXRpb24uc2Vjb25kcyA+IDAgJiYgZHVyYXRpb24ubmFub3MgPCAwKSB7CiAgICAgICBkdXJhdGlvbi5zZWNvbmRzIC09IDE7CiAgICAgICBkdXJhdGlvbi5uYW5vcyArPSAxMDAwMDAwMDAwOwogICAgIH0KCiBFeGFtcGxlIDI6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gVGltZXN0YW1wICsgRHVyYXRpb24gaW4gcHNldWRvIGNvZGUuCgogICAgIFRpbWVzdGFtcCBzdGFydCA9IC4uLjsKICAgICBEdXJhdGlvbiBkdXJhdGlvbiA9IC4uLjsKICAgICBUaW1lc3RhbXAgZW5kID0gLi4uOwoKICAgICBlbmQuc2Vjb25kcyA9IHN0YXJ0LnNlY29uZHMgKyBkdXJhdGlvbi5zZWNvbmRzOwogICAgIGVuZC5uYW5vcyA9IHN0YXJ0Lm5hbm9zICsgZHVyYXRpb24ubmFub3M7CgogICAgIGlmIChlbmQubmFub3MgPCAwKSB7CiAgICAgICBlbmQuc2Vjb25kcyAtPSAxOwogICAgICAgZW5kLm5hbm9zICs9IDEwMDAwMDAwMDA7CiAgICAgfSBlbHNlIGlmIChlbmQubmFub3MgPj0gMTAwMDAwMDAwMCkgewogICAgICAgZW5kLnNlY29uZHMgKz0gMTsKICAgICAgIGVuZC5uYW5vcyAtPSAxMDAwMDAwMDAwOwogICAgIH0KCiBFeGFtcGxlIDM6IENvbXB1dGUgRHVyYXRpb24gZnJvbSBkYXRldGltZS50aW1lZGVsdGEgaW4gUHl0aG9uLgoKICAgICB0ZCA9IGRhdGV0aW1lLnRpbWVkZWx0YShkYXlzPTMsIG1pbnV0ZXM9MTApCiAgICAgZHVyYXRpb24gPSBEdXJhdGlvbigpCiAgICAgZHVyYXRpb24uRnJvbVRpbWVkZWx0YSh0ZCkKCiAjIEpTT04gTWFwcGluZwoKIEluIEpTT04gZm9ybWF0LCB0aGUgRHVyYXRpb24gdHlwZSBpcyBlbmNvZGVkIGFzIGEgc3RyaW5nIHJhdGhlciB0aGFuIGFuCiBvYmplY3QsIHdoZXJlIHRoZSBzdHJpbmcgZW5kcyBpbiB0aGUgc3VmZml4ICJzIiAoaW5kaWNhdGluZyBzZWNvbmRzKSBhbmQKIGlzIHByZWNlZGVkIGJ5IHRoZSBudW1iZXIgb2Ygc2Vjb25kcywgd2l0aCBuYW5vc2Vjb25kcyBleHByZXNzZWQgYXMKIGZyYWN0aW9uYWwgc2Vjb25kcy4gRm9yIGV4YW1wbGUsIDMgc2Vjb25kcyB3aXRoIDAgbmFub3NlY29uZHMgc2hvdWxkIGJlCiBlbmNvZGVkIGluIEpTT04gZm9ybWF0IGFzICIzcyIsIHdoaWxlIDMgc2Vjb25kcyBhbmQgMSBuYW5vc2Vjb25kIHNob3VsZAogYmUgZXhwcmVzc2VkIGluIEpTT04gZm9ybWF0IGFzICIzLjAwMDAwMDAwMXMiLCBhbmQgMyBzZWNvbmRzIGFuZCAxCiBtaWNyb3NlY29uZCBzaG91bGQgYmUgZXhwcmVzc2VkIGluIEpTT04gZm9ybWF0IGFzICIzLjAwMDAwMXMiLgoKCgoKAwQAARIDZQgQCtwBCgQEAAIAEgNpAhQazgEgU2lnbmVkIHNlY29uZHMgb2YgdGhlIHNwYW4gb2YgdGltZS4gTXVzdCBiZSBmcm9tIC0zMTUsNTc2LDAwMCwwMDAKIHRvICszMTUsNTc2LDAwMCwwMDAgaW5jbHVzaXZlLiBOb3RlOiB0aGVzZSBib3VuZHMgYXJlIGNvbXB1dGVkIGZyb206CiA2MCBzZWMvbWluICogNjAgbWluL2hyICogMjQgaHIvZGF5ICogMzY1LjI1IGRheXMveWVhciAqIDEwMDAwIHllYXJzCgoMCgUEAAIABRIDaQIHCgwKBQQAAgABEgNpCA8KDAoFBAACAAMSA2kSEwqDAwoEBAACARIDcQISGvUCIFNpZ25lZCBmcmFjdGlvbnMgb2YgYSBzZWNvbmQgYXQgbmFub3NlY29uZCByZXNvbHV0aW9uIG9mIHRoZSBzcGFuCiBvZiB0aW1lLiBEdXJhdGlvbnMgbGVzcyB0aGFuIG9uZSBzZWNvbmQgYXJlIHJlcHJlc2VudGVkIHdpdGggYSAwCiBgc2Vjb25kc2AgZmllbGQgYW5kIGEgcG9zaXRpdmUgb3IgbmVnYXRpdmUgYG5hbm9zYCBmaWVsZC4gRm9yIGR1cmF0aW9ucwogb2Ygb25lIHNlY29uZCBvciBtb3JlLCBhIG5vbi16ZXJvIHZhbHVlIGZvciB0aGUgYG5hbm9zYCBmaWVsZCBtdXN0IGJlCiBvZiB0aGUgc2FtZSBzaWduIGFzIHRoZSBgc2Vjb25kc2AgZmllbGQuIE11c3QgYmUgZnJvbSAtOTk5LDk5OSw5OTkKIHRvICs5OTksOTk5LDk5OSBpbmNsdXNpdmUuCgoMCgUEAAIBBRIDcQIHCgwKBQQAAgEBEgNxCA0KDAoFBAACAQMSA3EQEWIGcHJvdG8zCv8RChtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiIHCgVFbXB0eUJ9ChNjb20uZ29vZ2xlLnByb3RvYnVmQgpFbXB0eVByb3RvUAFaLmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL2VtcHR5cGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKvhAKBhIEHgAyEArMDAoBDBIDHgASMsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIARQoJCgIICxIDIgBFCggKAQgSAyMALAoJCgIIARIDIwAsCggKAQgSAyQAKwoJCgIICBIDJAArCggKAQgSAyUAIgoJCgIIChIDJQAiCggKAQgSAyYAIQoJCgIIJBIDJgAhCggKAQgSAycAOwoJCgIIJRIDJwA7CggKAQgSAygAHwoJCgIIHxIDKAAfCrsCCgIEABIDMgAQGq8CIEEgZ2VuZXJpYyBlbXB0eSBtZXNzYWdlIHRoYXQgeW91IGNhbiByZS11c2UgdG8gYXZvaWQgZGVmaW5pbmcgZHVwbGljYXRlZAogZW1wdHkgbWVzc2FnZXMgaW4geW91ciBBUElzLiBBIHR5cGljYWwgZXhhbXBsZSBpcyB0byB1c2UgaXQgYXMgdGhlIHJlcXVlc3QKIG9yIHRoZSByZXNwb25zZSB0eXBlIG9mIGFuIEFQSSBtZXRob2QuIEZvciBpbnN0YW5jZToKCiAgICAgc2VydmljZSBGb28gewogICAgICAgcnBjIEJhcihnb29nbGUucHJvdG9idWYuRW1wdHkpIHJldHVybnMgKGdvb2dsZS5wcm90b2J1Zi5FbXB0eSk7CiAgICAgfQoKCgoKAwQAARIDMggNYgZwcm90bzMKij0KIGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvEg9nb29nbGUucHJvdG9idWYiIQoJRmllbGRNYXNrEhQKBXBhdGhzGAEgAygJUgVwYXRoc0KFAQoTY29tLmdvb2dsZS5wcm90b2J1ZkIORmllbGRNYXNrUHJvdG9QAVoyZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYvdHlwZXMva25vd24vZmllbGRtYXNrcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKoTsKBxIFHgD0AQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiACwKCQoCCAESAyIALAoICgEIEgMjAC8KCQoCCAgSAyMALwoICgEIEgMkACIKCQoCCAoSAyQAIgoICgEIEgMlACEKCQoCCCQSAyUAIQoICgEIEgMmADsKCQoCCCUSAyYAOwoICgEIEgMnAEkKCQoCCAsSAycASQoICgEIEgMoAB8KCQoCCB8SAygAHwqyLAoCBAASBvEBAPQBARqjLCBgRmllbGRNYXNrYCByZXByZXNlbnRzIGEgc2V0IG9mIHN5bWJvbGljIGZpZWxkIHBhdGhzLCBmb3IgZXhhbXBsZToKCiAgICAgcGF0aHM6ICJmLmEiCiAgICAgcGF0aHM6ICJmLmIuZCIKCiBIZXJlIGBmYCByZXByZXNlbnRzIGEgZmllbGQgaW4gc29tZSByb290IG1lc3NhZ2UsIGBhYCBhbmQgYGJgCiBmaWVsZHMgaW4gdGhlIG1lc3NhZ2UgZm91bmQgaW4gYGZgLCBhbmQgYGRgIGEgZmllbGQgZm91bmQgaW4gdGhlCiBtZXNzYWdlIGluIGBmLmJgLgoKIEZpZWxkIG1hc2tzIGFyZSB1c2VkIHRvIHNwZWNpZnkgYSBzdWJzZXQgb2YgZmllbGRzIHRoYXQgc2hvdWxkIGJlCiByZXR1cm5lZCBieSBhIGdldCBvcGVyYXRpb24gb3IgbW9kaWZpZWQgYnkgYW4gdXBkYXRlIG9wZXJhdGlvbi4KIEZpZWxkIG1hc2tzIGFsc28gaGF2ZSBhIGN1c3RvbSBKU09OIGVuY29kaW5nIChzZWUgYmVsb3cpLgoKICMgRmllbGQgTWFza3MgaW4gUHJvamVjdGlvbnMKCiBXaGVuIHVzZWQgaW4gdGhlIGNvbnRleHQgb2YgYSBwcm9qZWN0aW9uLCBhIHJlc3BvbnNlIG1lc3NhZ2Ugb3IKIHN1Yi1tZXNzYWdlIGlzIGZpbHRlcmVkIGJ5IHRoZSBBUEkgdG8gb25seSBjb250YWluIHRob3NlIGZpZWxkcyBhcwogc3BlY2lmaWVkIGluIHRoZSBtYXNrLiBGb3IgZXhhbXBsZSwgaWYgdGhlIG1hc2sgaW4gdGhlIHByZXZpb3VzCiBleGFtcGxlIGlzIGFwcGxpZWQgdG8gYSByZXNwb25zZSBtZXNzYWdlIGFzIGZvbGxvd3M6CgogICAgIGYgewogICAgICAgYSA6IDIyCiAgICAgICBiIHsKICAgICAgICAgZCA6IDEKICAgICAgICAgeCA6IDIKICAgICAgIH0KICAgICAgIHkgOiAxMwogICAgIH0KICAgICB6OiA4CgogVGhlIHJlc3VsdCB3aWxsIG5vdCBjb250YWluIHNwZWNpZmljIHZhbHVlcyBmb3IgZmllbGRzIHgseSBhbmQgegogKHRoZWlyIHZhbHVlIHdpbGwgYmUgc2V0IHRvIHRoZSBkZWZhdWx0LCBhbmQgb21pdHRlZCBpbiBwcm90byB0ZXh0CiBvdXRwdXQpOgoKCiAgICAgZiB7CiAgICAgICBhIDogMjIKICAgICAgIGIgewogICAgICAgICBkIDogMQogICAgICAgfQogICAgIH0KCiBBIHJlcGVhdGVkIGZpZWxkIGlzIG5vdCBhbGxvd2VkIGV4Y2VwdCBhdCB0aGUgbGFzdCBwb3NpdGlvbiBvZiBhCiBwYXRocyBzdHJpbmcuCgogSWYgYSBGaWVsZE1hc2sgb2JqZWN0IGlzIG5vdCBwcmVzZW50IGluIGEgZ2V0IG9wZXJhdGlvbiwgdGhlCiBvcGVyYXRpb24gYXBwbGllcyB0byBhbGwgZmllbGRzIChhcyBpZiBhIEZpZWxkTWFzayBvZiBhbGwgZmllbGRzCiBoYWQgYmVlbiBzcGVjaWZpZWQpLgoKIE5vdGUgdGhhdCBhIGZpZWxkIG1hc2sgZG9lcyBub3QgbmVjZXNzYXJpbHkgYXBwbHkgdG8gdGhlCiB0b3AtbGV2ZWwgcmVzcG9uc2UgbWVzc2FnZS4gSW4gY2FzZSBvZiBhIFJFU1QgZ2V0IG9wZXJhdGlvbiwgdGhlCiBmaWVsZCBtYXNrIGFwcGxpZXMgZGlyZWN0bHkgdG8gdGhlIHJlc3BvbnNlLCBidXQgaW4gY2FzZSBvZiBhIFJFU1QKIGxpc3Qgb3BlcmF0aW9uLCB0aGUgbWFzayBpbnN0ZWFkIGFwcGxpZXMgdG8gZWFjaCBpbmRpdmlkdWFsIG1lc3NhZ2UKIGluIHRoZSByZXR1cm5lZCByZXNvdXJjZSBsaXN0LiBJbiBjYXNlIG9mIGEgUkVTVCBjdXN0b20gbWV0aG9kLAogb3RoZXIgZGVmaW5pdGlvbnMgbWF5IGJlIHVzZWQuIFdoZXJlIHRoZSBtYXNrIGFwcGxpZXMgd2lsbCBiZQogY2xlYXJseSBkb2N1bWVudGVkIHRvZ2V0aGVyIHdpdGggaXRzIGRlY2xhcmF0aW9uIGluIHRoZSBBUEkuICBJbgogYW55IGNhc2UsIHRoZSBlZmZlY3Qgb24gdGhlIHJldHVybmVkIHJlc291cmNlL3Jlc291cmNlcyBpcyByZXF1aXJlZAogYmVoYXZpb3IgZm9yIEFQSXMuCgogIyBGaWVsZCBNYXNrcyBpbiBVcGRhdGUgT3BlcmF0aW9ucwoKIEEgZmllbGQgbWFzayBpbiB1cGRhdGUgb3BlcmF0aW9ucyBzcGVjaWZpZXMgd2hpY2ggZmllbGRzIG9mIHRoZQogdGFyZ2V0ZWQgcmVzb3VyY2UgYXJlIGdvaW5nIHRvIGJlIHVwZGF0ZWQuIFRoZSBBUEkgaXMgcmVxdWlyZWQKIHRvIG9ubHkgY2hhbmdlIHRoZSB2YWx1ZXMgb2YgdGhlIGZpZWxkcyBhcyBzcGVjaWZpZWQgaW4gdGhlIG1hc2sKIGFuZCBsZWF2ZSB0aGUgb3RoZXJzIHVudG91Y2hlZC4gSWYgYSByZXNvdXJjZSBpcyBwYXNzZWQgaW4gdG8KIGRlc2NyaWJlIHRoZSB1cGRhdGVkIHZhbHVlcywgdGhlIEFQSSBpZ25vcmVzIHRoZSB2YWx1ZXMgb2YgYWxsCiBmaWVsZHMgbm90IGNvdmVyZWQgYnkgdGhlIG1hc2suCgogSWYgYSByZXBlYXRlZCBmaWVsZCBpcyBzcGVjaWZpZWQgZm9yIGFuIHVwZGF0ZSBvcGVyYXRpb24sIG5ldyB2YWx1ZXMgd2lsbAogYmUgYXBwZW5kZWQgdG8gdGhlIGV4aXN0aW5nIHJlcGVhdGVkIGZpZWxkIGluIHRoZSB0YXJnZXQgcmVzb3VyY2UuIE5vdGUgdGhhdAogYSByZXBlYXRlZCBmaWVsZCBpcyBvbmx5IGFsbG93ZWQgaW4gdGhlIGxhc3QgcG9zaXRpb24gb2YgYSBgcGF0aHNgIHN0cmluZy4KCiBJZiBhIHN1Yi1tZXNzYWdlIGlzIHNwZWNpZmllZCBpbiB0aGUgbGFzdCBwb3NpdGlvbiBvZiB0aGUgZmllbGQgbWFzayBmb3IgYW4KIHVwZGF0ZSBvcGVyYXRpb24sIHRoZW4gbmV3IHZhbHVlIHdpbGwgYmUgbWVyZ2VkIGludG8gdGhlIGV4aXN0aW5nIHN1Yi1tZXNzYWdlCiBpbiB0aGUgdGFyZ2V0IHJlc291cmNlLgoKIEZvciBleGFtcGxlLCBnaXZlbiB0aGUgdGFyZ2V0IG1lc3NhZ2U6CgogICAgIGYgewogICAgICAgYiB7CiAgICAgICAgIGQ6IDEKICAgICAgICAgeDogMgogICAgICAgfQogICAgICAgYzogWzFdCiAgICAgfQoKIEFuZCBhbiB1cGRhdGUgbWVzc2FnZToKCiAgICAgZiB7CiAgICAgICBiIHsKICAgICAgICAgZDogMTAKICAgICAgIH0KICAgICAgIGM6IFsyXQogICAgIH0KCiB0aGVuIGlmIHRoZSBmaWVsZCBtYXNrIGlzOgoKICBwYXRoczogWyJmLmIiLCAiZi5jIl0KCiB0aGVuIHRoZSByZXN1bHQgd2lsbCBiZToKCiAgICAgZiB7CiAgICAgICBiIHsKICAgICAgICAgZDogMTAKICAgICAgICAgeDogMgogICAgICAgfQogICAgICAgYzogWzEsIDJdCiAgICAgfQoKIEFuIGltcGxlbWVudGF0aW9uIG1heSBwcm92aWRlIG9wdGlvbnMgdG8gb3ZlcnJpZGUgdGhpcyBkZWZhdWx0IGJlaGF2aW9yIGZvcgogcmVwZWF0ZWQgYW5kIG1lc3NhZ2UgZmllbGRzLgoKIEluIG9yZGVyIHRvIHJlc2V0IGEgZmllbGQncyB2YWx1ZSB0byB0aGUgZGVmYXVsdCwgdGhlIGZpZWxkIG11c3QKIGJlIGluIHRoZSBtYXNrIGFuZCBzZXQgdG8gdGhlIGRlZmF1bHQgdmFsdWUgaW4gdGhlIHByb3ZpZGVkIHJlc291cmNlLgogSGVuY2UsIGluIG9yZGVyIHRvIHJlc2V0IGFsbCBmaWVsZHMgb2YgYSByZXNvdXJjZSwgcHJvdmlkZSBhIGRlZmF1bHQKIGluc3RhbmNlIG9mIHRoZSByZXNvdXJjZSBhbmQgc2V0IGFsbCBmaWVsZHMgaW4gdGhlIG1hc2ssIG9yIGRvCiBub3QgcHJvdmlkZSBhIG1hc2sgYXMgZGVzY3JpYmVkIGJlbG93LgoKIElmIGEgZmllbGQgbWFzayBpcyBub3QgcHJlc2VudCBvbiB1cGRhdGUsIHRoZSBvcGVyYXRpb24gYXBwbGllcyB0bwogYWxsIGZpZWxkcyAoYXMgaWYgYSBmaWVsZCBtYXNrIG9mIGFsbCBmaWVsZHMgaGFzIGJlZW4gc3BlY2lmaWVkKS4KIE5vdGUgdGhhdCBpbiB0aGUgcHJlc2VuY2Ugb2Ygc2NoZW1hIGV2b2x1dGlvbiwgdGhpcyBtYXkgbWVhbiB0aGF0CiBmaWVsZHMgdGhlIGNsaWVudCBkb2VzIG5vdCBrbm93IGFuZCBoYXMgdGhlcmVmb3JlIG5vdCBmaWxsZWQgaW50bwogdGhlIHJlcXVlc3Qgd2lsbCBiZSByZXNldCB0byB0aGVpciBkZWZhdWx0LiBJZiB0aGlzIGlzIHVud2FudGVkCiBiZWhhdmlvciwgYSBzcGVjaWZpYyBzZXJ2aWNlIG1heSByZXF1aXJlIGEgY2xpZW50IHRvIGFsd2F5cyBzcGVjaWZ5CiBhIGZpZWxkIG1hc2ssIHByb2R1Y2luZyBhbiBlcnJvciBpZiBub3QuCgogQXMgd2l0aCBnZXQgb3BlcmF0aW9ucywgdGhlIGxvY2F0aW9uIG9mIHRoZSByZXNvdXJjZSB3aGljaAogZGVzY3JpYmVzIHRoZSB1cGRhdGVkIHZhbHVlcyBpbiB0aGUgcmVxdWVzdCBtZXNzYWdlIGRlcGVuZHMgb24gdGhlCiBvcGVyYXRpb24ga2luZC4gSW4gYW55IGNhc2UsIHRoZSBlZmZlY3Qgb2YgdGhlIGZpZWxkIG1hc2sgaXMKIHJlcXVpcmVkIHRvIGJlIGhvbm9yZWQgYnkgdGhlIEFQSS4KCiAjIyBDb25zaWRlcmF0aW9ucyBmb3IgSFRUUCBSRVNUCgogVGhlIEhUVFAga2luZCBvZiBhbiB1cGRhdGUgb3BlcmF0aW9uIHdoaWNoIHVzZXMgYSBmaWVsZCBtYXNrIG11c3QKIGJlIHNldCB0byBQQVRDSCBpbnN0ZWFkIG9mIFBVVCBpbiBvcmRlciB0byBzYXRpc2Z5IEhUVFAgc2VtYW50aWNzCiAoUFVUIG11c3Qgb25seSBiZSB1c2VkIGZvciBmdWxsIHVwZGF0ZXMpLgoKICMgSlNPTiBFbmNvZGluZyBvZiBGaWVsZCBNYXNrcwoKIEluIEpTT04sIGEgZmllbGQgbWFzayBpcyBlbmNvZGVkIGFzIGEgc2luZ2xlIHN0cmluZyB3aGVyZSBwYXRocyBhcmUKIHNlcGFyYXRlZCBieSBhIGNvbW1hLiBGaWVsZHMgbmFtZSBpbiBlYWNoIHBhdGggYXJlIGNvbnZlcnRlZAogdG8vZnJvbSBsb3dlci1jYW1lbCBuYW1pbmcgY29udmVudGlvbnMuCgogQXMgYW4gZXhhbXBsZSwgY29uc2lkZXIgdGhlIGZvbGxvd2luZyBtZXNzYWdlIGRlY2xhcmF0aW9uczoKCiAgICAgbWVzc2FnZSBQcm9maWxlIHsKICAgICAgIFVzZXIgdXNlciA9IDE7CiAgICAgICBQaG90byBwaG90byA9IDI7CiAgICAgfQogICAgIG1lc3NhZ2UgVXNlciB7CiAgICAgICBzdHJpbmcgZGlzcGxheV9uYW1lID0gMTsKICAgICAgIHN0cmluZyBhZGRyZXNzID0gMjsKICAgICB9CgogSW4gcHJvdG8gYSBmaWVsZCBtYXNrIGZvciBgUHJvZmlsZWAgbWF5IGxvb2sgYXMgc3VjaDoKCiAgICAgbWFzayB7CiAgICAgICBwYXRoczogInVzZXIuZGlzcGxheV9uYW1lIgogICAgICAgcGF0aHM6ICJwaG90byIKICAgICB9CgogSW4gSlNPTiwgdGhlIHNhbWUgbWFzayBpcyByZXByZXNlbnRlZCBhcyBiZWxvdzoKCiAgICAgewogICAgICAgbWFzazogInVzZXIuZGlzcGxheU5hbWUscGhvdG8iCiAgICAgfQoKICMgRmllbGQgTWFza3MgYW5kIE9uZW9mIEZpZWxkcwoKIEZpZWxkIG1hc2tzIHRyZWF0IGZpZWxkcyBpbiBvbmVvZnMganVzdCBhcyByZWd1bGFyIGZpZWxkcy4gQ29uc2lkZXIgdGhlCiBmb2xsb3dpbmcgbWVzc2FnZToKCiAgICAgbWVzc2FnZSBTYW1wbGVNZXNzYWdlIHsKICAgICAgIG9uZW9mIHRlc3Rfb25lb2YgewogICAgICAgICBzdHJpbmcgbmFtZSA9IDQ7CiAgICAgICAgIFN1Yk1lc3NhZ2Ugc3ViX21lc3NhZ2UgPSA5OwogICAgICAgfQogICAgIH0KCiBUaGUgZmllbGQgbWFzayBjYW4gYmU6CgogICAgIG1hc2sgewogICAgICAgcGF0aHM6ICJuYW1lIgogICAgIH0KCiBPcjoKCiAgICAgbWFzayB7CiAgICAgICBwYXRoczogInN1Yl9tZXNzYWdlIgogICAgIH0KCiBOb3RlIHRoYXQgb25lb2YgdHlwZSBuYW1lcyAoInRlc3Rfb25lb2YiIGluIHRoaXMgY2FzZSkgY2Fubm90IGJlIHVzZWQgaW4KIHBhdGhzLgoKICMjIEZpZWxkIE1hc2sgVmVyaWZpY2F0aW9uCgogVGhlIGltcGxlbWVudGF0aW9uIG9mIGFueSBBUEkgbWV0aG9kIHdoaWNoIGhhcyBhIEZpZWxkTWFzayB0eXBlIGZpZWxkIGluIHRoZQogcmVxdWVzdCBzaG91bGQgdmVyaWZ5IHRoZSBpbmNsdWRlZCBmaWVsZCBwYXRocywgYW5kIHJldHVybiBhbgogYElOVkFMSURfQVJHVU1FTlRgIGVycm9yIGlmIGFueSBwYXRoIGlzIHVubWFwcGFibGUuCgoLCgMEAAESBPEBCBEKLAoEBAACABIE8wECHBoeIFRoZSBzZXQgb2YgZmllbGQgbWFzayBwYXRocy4KCg0KBQQAAgAEEgTzAQIKCg0KBQQAAgAFEgTzAQsRCg0KBQQAAgABEgTzARIXCg0KBQQAAgADEgTzARobYgZwcm90bzMKwzEKH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiI7CglUaW1lc3RhbXASGAoHc2Vjb25kcxgBIAEoA1IHc2Vjb25kcxIUCgVuYW5vcxgCIAEoBVIFbmFub3NChQEKE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaMmdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3RpbWVzdGFtcHBi+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSsEvCgcSBR4AjwEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgAfCgkKAggfEgMiAB8KCAoBCBIDIwBJCgkKAggLEgMjAEkKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQAvCgkKAggIEgMlAC8KCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEKCAoBCBIDKAA7CgkKAgglEgMoADsK2h0KAgQAEgaEAQCPAQEayx0gQSBUaW1lc3RhbXAgcmVwcmVzZW50cyBhIHBvaW50IGluIHRpbWUgaW5kZXBlbmRlbnQgb2YgYW55IHRpbWUgem9uZSBvciBsb2NhbAogY2FsZW5kYXIsIGVuY29kZWQgYXMgYSBjb3VudCBvZiBzZWNvbmRzIGFuZCBmcmFjdGlvbnMgb2Ygc2Vjb25kcyBhdAogbmFub3NlY29uZCByZXNvbHV0aW9uLiBUaGUgY291bnQgaXMgcmVsYXRpdmUgdG8gYW4gZXBvY2ggYXQgVVRDIG1pZG5pZ2h0IG9uCiBKYW51YXJ5IDEsIDE5NzAsIGluIHRoZSBwcm9sZXB0aWMgR3JlZ29yaWFuIGNhbGVuZGFyIHdoaWNoIGV4dGVuZHMgdGhlCiBHcmVnb3JpYW4gY2FsZW5kYXIgYmFja3dhcmRzIHRvIHllYXIgb25lLgoKIEFsbCBtaW51dGVzIGFyZSA2MCBzZWNvbmRzIGxvbmcuIExlYXAgc2Vjb25kcyBhcmUgInNtZWFyZWQiIHNvIHRoYXQgbm8gbGVhcAogc2Vjb25kIHRhYmxlIGlzIG5lZWRlZCBmb3IgaW50ZXJwcmV0YXRpb24sIHVzaW5nIGEgWzI0LWhvdXIgbGluZWFyCiBzbWVhcl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vdGltZS9zbWVhcikuCgogVGhlIHJhbmdlIGlzIGZyb20gMDAwMS0wMS0wMVQwMDowMDowMFogdG8gOTk5OS0xMi0zMVQyMzo1OTo1OS45OTk5OTk5OTlaLiBCeQogcmVzdHJpY3RpbmcgdG8gdGhhdCByYW5nZSwgd2UgZW5zdXJlIHRoYXQgd2UgY2FuIGNvbnZlcnQgdG8gYW5kIGZyb20gW1JGQwogMzMzOV0oaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBkYXRlIHN0cmluZ3MuCgogIyBFeGFtcGxlcwoKIEV4YW1wbGUgMTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBQT1NJWCBgdGltZSgpYC4KCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHModGltZShOVUxMKSk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcygwKTsKCiBFeGFtcGxlIDI6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gUE9TSVggYGdldHRpbWVvZmRheSgpYC4KCiAgICAgc3RydWN0IHRpbWV2YWwgdHY7CiAgICAgZ2V0dGltZW9mZGF5KCZ0diwgTlVMTCk7CgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKHR2LnR2X3NlYyk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcyh0di50dl91c2VjICogMTAwMCk7CgogRXhhbXBsZSAzOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFdpbjMyIGBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgpYC4KCiAgICAgRklMRVRJTUUgZnQ7CiAgICAgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoJmZ0KTsKICAgICBVSU5UNjQgdGlja3MgPSAoKChVSU5UNjQpZnQuZHdIaWdoRGF0ZVRpbWUpIDw8IDMyKSB8IGZ0LmR3TG93RGF0ZVRpbWU7CgogICAgIC8vIEEgV2luZG93cyB0aWNrIGlzIDEwMCBuYW5vc2Vjb25kcy4gV2luZG93cyBlcG9jaCAxNjAxLTAxLTAxVDAwOjAwOjAwWgogICAgIC8vIGlzIDExNjQ0NDczNjAwIHNlY29uZHMgYmVmb3JlIFVuaXggZXBvY2ggMTk3MC0wMS0wMVQwMDowMDowMFouCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHMoKElOVDY0KSAoKHRpY2tzIC8gMTAwMDAwMDApIC0gMTE2NDQ0NzM2MDBMTCkpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3MoKElOVDMyKSAoKHRpY2tzICUgMTAwMDAwMDApICogMTAwKSk7CgogRXhhbXBsZSA0OiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIEphdmEgYFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpYC4KCiAgICAgbG9uZyBtaWxsaXMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcCA9IFRpbWVzdGFtcC5uZXdCdWlsZGVyKCkuc2V0U2Vjb25kcyhtaWxsaXMgLyAxMDAwKQogICAgICAgICAuc2V0TmFub3MoKGludCkgKChtaWxsaXMgJSAxMDAwKSAqIDEwMDAwMDApKS5idWlsZCgpOwoKIEV4YW1wbGUgNTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBKYXZhIGBJbnN0YW50Lm5vdygpYC4KCiAgICAgSW5zdGFudCBub3cgPSBJbnN0YW50Lm5vdygpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wID0KICAgICAgICAgVGltZXN0YW1wLm5ld0J1aWxkZXIoKS5zZXRTZWNvbmRzKG5vdy5nZXRFcG9jaFNlY29uZCgpKQogICAgICAgICAgICAgLnNldE5hbm9zKG5vdy5nZXROYW5vKCkpLmJ1aWxkKCk7CgogRXhhbXBsZSA2OiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIGN1cnJlbnQgdGltZSBpbiBQeXRob24uCgogICAgIHRpbWVzdGFtcCA9IFRpbWVzdGFtcCgpCiAgICAgdGltZXN0YW1wLkdldEN1cnJlbnRUaW1lKCkKCiAjIEpTT04gTWFwcGluZwoKIEluIEpTT04gZm9ybWF0LCB0aGUgVGltZXN0YW1wIHR5cGUgaXMgZW5jb2RlZCBhcyBhIHN0cmluZyBpbiB0aGUKIFtSRkMgMzMzOV0oaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBmb3JtYXQuIFRoYXQgaXMsIHRoZQogZm9ybWF0IGlzICJ7eWVhcn0te21vbnRofS17ZGF5fVR7aG91cn06e21pbn06e3NlY31bLntmcmFjX3NlY31dWiIKIHdoZXJlIHt5ZWFyfSBpcyBhbHdheXMgZXhwcmVzc2VkIHVzaW5nIGZvdXIgZGlnaXRzIHdoaWxlIHttb250aH0sIHtkYXl9LAoge2hvdXJ9LCB7bWlufSwgYW5kIHtzZWN9IGFyZSB6ZXJvLXBhZGRlZCB0byB0d28gZGlnaXRzIGVhY2guIFRoZSBmcmFjdGlvbmFsCiBzZWNvbmRzLCB3aGljaCBjYW4gZ28gdXAgdG8gOSBkaWdpdHMgKGkuZS4gdXAgdG8gMSBuYW5vc2Vjb25kIHJlc29sdXRpb24pLAogYXJlIG9wdGlvbmFsLiBUaGUgIloiIHN1ZmZpeCBpbmRpY2F0ZXMgdGhlIHRpbWV6b25lICgiVVRDIik7IHRoZSB0aW1lem9uZQogaXMgcmVxdWlyZWQuIEEgcHJvdG8zIEpTT04gc2VyaWFsaXplciBzaG91bGQgYWx3YXlzIHVzZSBVVEMgKGFzIGluZGljYXRlZCBieQogIloiKSB3aGVuIHByaW50aW5nIHRoZSBUaW1lc3RhbXAgdHlwZSBhbmQgYSBwcm90bzMgSlNPTiBwYXJzZXIgc2hvdWxkIGJlCiBhYmxlIHRvIGFjY2VwdCBib3RoIFVUQyBhbmQgb3RoZXIgdGltZXpvbmVzIChhcyBpbmRpY2F0ZWQgYnkgYW4gb2Zmc2V0KS4KCiBGb3IgZXhhbXBsZSwgIjIwMTctMDEtMTVUMDE6MzA6MTUuMDFaIiBlbmNvZGVzIDE1LjAxIHNlY29uZHMgcGFzdAogMDE6MzAgVVRDIG9uIEphbnVhcnkgMTUsIDIwMTcuCgogSW4gSmF2YVNjcmlwdCwgb25lIGNhbiBjb252ZXJ0IGEgRGF0ZSBvYmplY3QgdG8gdGhpcyBmb3JtYXQgdXNpbmcgdGhlCiBzdGFuZGFyZAogW3RvSVNPU3RyaW5nKCldKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGUvdG9JU09TdHJpbmcpCiBtZXRob2QuIEluIFB5dGhvbiwgYSBzdGFuZGFyZCBgZGF0ZXRpbWUuZGF0ZXRpbWVgIG9iamVjdCBjYW4gYmUgY29udmVydGVkCiB0byB0aGlzIGZvcm1hdCB1c2luZwogW2BzdHJmdGltZWBdKGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzIvbGlicmFyeS90aW1lLmh0bWwjdGltZS5zdHJmdGltZSkgd2l0aAogdGhlIHRpbWUgZm9ybWF0IHNwZWMgJyVZLSVtLSVkVCVIOiVNOiVTLiVmWicuIExpa2V3aXNlLCBpbiBKYXZhLCBvbmUgY2FuIHVzZQogdGhlIEpvZGEgVGltZSdzIFtgSVNPRGF0ZVRpbWVGb3JtYXQuZGF0ZVRpbWUoKWBdKAogaHR0cDovL2pvZGEtdGltZS5zb3VyY2Vmb3JnZS5uZXQvYXBpZG9jcy9vcmcvam9kYS90aW1lL2Zvcm1hdC9JU09EYXRlVGltZUZvcm1hdC5odG1sI2RhdGVUaW1lKCkKICkgdG8gb2J0YWluIGEgZm9ybWF0dGVyIGNhcGFibGUgb2YgZ2VuZXJhdGluZyB0aW1lc3RhbXBzIGluIHRoaXMgZm9ybWF0LgoKCgsKAwQAARIEhAEIEQqdAQoEBAACABIEiAECFBqOASBSZXByZXNlbnRzIHNlY29uZHMgb2YgVVRDIHRpbWUgc2luY2UgVW5peCBlcG9jaAogMTk3MC0wMS0wMVQwMDowMDowMFouIE11c3QgYmUgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0bwogOTk5OS0xMi0zMVQyMzo1OTo1OVogaW5jbHVzaXZlLgoKDQoFBAACAAUSBIgBAgcKDQoFBAACAAESBIgBCA8KDQoFBAACAAMSBIgBEhMK5QEKBAQAAgESBI4BAhIa1gEgTm9uLW5lZ2F0aXZlIGZyYWN0aW9ucyBvZiBhIHNlY29uZCBhdCBuYW5vc2Vjb25kIHJlc29sdXRpb24uIE5lZ2F0aXZlCiBzZWNvbmQgdmFsdWVzIHdpdGggZnJhY3Rpb25zIG11c3Qgc3RpbGwgaGF2ZSBub24tbmVnYXRpdmUgbmFub3MgdmFsdWVzCiB0aGF0IGNvdW50IGZvcndhcmQgaW4gdGltZS4gTXVzdCBiZSBmcm9tIDAgdG8gOTk5LDk5OSw5OTkKIGluY2x1c2l2ZS4KCg0KBQQAAgEFEgSOAQIHCg0KBQQAAgEBEgSOAQgNCg0KBQQAAgEDEgSOARARYgZwcm90bzMKzSMKHmdvb2dsZS9wcm90b2J1Zi93cmFwcGVycy5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIiMKC0RvdWJsZVZhbHVlEhQKBXZhbHVlGAEgASgBUgV2YWx1ZSIiCgpGbG9hdFZhbHVlEhQKBXZhbHVlGAEgASgCUgV2YWx1ZSIiCgpJbnQ2NFZhbHVlEhQKBXZhbHVlGAEgASgDUgV2YWx1ZSIjCgtVSW50NjRWYWx1ZRIUCgV2YWx1ZRgBIAEoBFIFdmFsdWUiIgoKSW50MzJWYWx1ZRIUCgV2YWx1ZRgBIAEoBVIFdmFsdWUiIwoLVUludDMyVmFsdWUSFAoFdmFsdWUYASABKA1SBXZhbHVlIiEKCUJvb2xWYWx1ZRIUCgV2YWx1ZRgBIAEoCFIFdmFsdWUiIwoLU3RyaW5nVmFsdWUSFAoFdmFsdWUYASABKAlSBXZhbHVlIiIKCkJ5dGVzVmFsdWUSFAoFdmFsdWUYASABKAxSBXZhbHVlQoMBChNjb20uZ29vZ2xlLnByb3RvYnVmQg1XcmFwcGVyc1Byb3RvUAFaMWdvb2dsZS5nb2xhbmcub3JnL3Byb3RvYnVmL3R5cGVzL2tub3duL3dyYXBwZXJzcGL4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNKxB8KBhIEKAB6AQrZEAoBDBIDKAASMs4QIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKIFdyYXBwZXJzIGZvciBwcmltaXRpdmUgKG5vbi1tZXNzYWdlKSB0eXBlcy4gVGhlc2UgdHlwZXMgYXJlIHVzZWZ1bAogZm9yIGVtYmVkZGluZyBwcmltaXRpdmVzIGluIHRoZSBgZ29vZ2xlLnByb3Rv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IGlzIEpTT04gYHRydWVgIGFuZCBgZmFsc2VgLgoKCgoDBAYBEgNnCBEKHgoEBAYCABIDaQIRGhEgVGhlIGJvb2wgdmFsdWUuCgoMCgUEBgIABRIDaQIGCgwKBQQGAgABEgNpBwwKDAoFBAYCAAMSA2kPEApnCgIEBxIEbwByARpbIFdyYXBwZXIgbWVzc2FnZSBmb3IgYHN0cmluZ2AuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBTdHJpbmdWYWx1ZWAgaXMgSlNPTiBzdHJpbmcuCgoKCgMEBwESA28IEwogCgQEBwIAEgNxAhMaEyBUaGUgc3RyaW5nIHZhbHVlLgoKDAoFBAcCAAUSA3ECCAoMCgUEBwIAARIDcQkOCgwKBQQHAgADEgNxERIKZQoCBAgSBHcAegEaWSBXcmFwcGVyIG1lc3NhZ2UgZm9yIGBieXRlc2AuCgogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gZm9yIGBCeXRlc1ZhbHVlYCBpcyBKU09OIHN0cmluZy4KCgoKAwQIARIDdwgSCh8KBAQIAgASA3kCEhoSIFRoZSBieXRlcyB2YWx1ZS4KCgwKBQQIAgAFEgN5AgcKDAoFBAgCAAESA3kIDQoMCgUECAIAAxIDeRARYgZwcm90bzMK6m0KL2dvb2dsZS9wcm90b2J1Zi91bml0dGVzdF93ZWxsX2tub3duX3R5cGVzLnByb3RvEhFwcm90b2J1Zl91bml0dGVzdBoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxoZZ29vZ2xlL3Byb3RvYnVmL2FwaS5wcm90bxoeZ29vZ2xlL3Byb3RvYnVmL2R1cmF0aW9uLnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvGiRnb29nbGUvcHJvdG9idWYvc291cmNlX2NvbnRleHQucHJvdG8aHGdvb2dsZS9wcm90b2J1Zi9zdHJ1Y3QucHJvdG8aH2dvb2dsZS9wcm90b2J1Zi90aW1lc3RhbXAucHJvdG8aGmdvb2dsZS9wcm90b2J1Zi90eXBlLnByb3RvGh5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8itAkKElRlc3RXZWxsS25vd25UeXBlcxIxCglhbnlfZmllbGQYASABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UghhbnlGaWVsZBIxCglhcGlfZmllbGQYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQXBpUghhcGlGaWVsZBJACg5kdXJhdGlvbl9maWVsZBgDIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblINZHVyYXRpb25GaWVsZBI3CgtlbXB0eV9maWVsZBgEIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIKZW1wdHlGaWVsZBJEChBmaWVsZF9tYXNrX2ZpZWxkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza1IOZmllbGRNYXNrRmllbGQSUAoUc291cmNlX2NvbnRleHRfZmllbGQYBiABKAsyHi5nb29nbGUucHJvdG9idWYuU291cmNlQ29udGV4dFISc291cmNlQ29udGV4dEZpZWxkEjoKDHN0cnVjdF9maWVsZBgHIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSC3N0cnVjdEZpZWxkEkMKD3RpbWVzdGFtcF9maWVsZBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSDnRpbWVzdGFtcEZpZWxkEjQKCnR5cGVfZmllbGQYCSABKAsyFS5nb29nbGUucHJvdG9idWYuVHlwZVIJdHlwZUZpZWxkEj8KDGRvdWJsZV9maWVsZBgKIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVILZG91YmxlRmllbGQSPAoLZmxvYXRfZmllbGQYCyABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZVIKZmxvYXRGaWVsZBI8CgtpbnQ2NF9maWVsZBgMIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQ2NFZhbHVlUgppbnQ2NEZpZWxkEj8KDHVpbnQ2NF9maWVsZBgNIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVILdWludDY0RmllbGQSPAoLaW50MzJfZmllbGQYDiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZVIKaW50MzJGaWVsZBI/Cgx1aW50MzJfZmllbGQYDyABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWVSC3VpbnQzMkZpZWxkEjkKCmJvb2xfZmllbGQYECABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUglib29sRmllbGQSPwoMc3RyaW5nX2ZpZWxkGBEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlUgtzdHJpbmdGaWVsZBI8CgtieXRlc19maWVsZBgSIAEoCzIbLmdvb2dsZS5wcm90b2J1Zi5CeXRlc1ZhbHVlUgpieXRlc0ZpZWxkEjcKC3ZhbHVlX2ZpZWxkGBMgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUgp2YWx1ZUZpZWxkIv8IChZSZXBlYXRlZFdlbGxLbm93blR5cGVzEjEKCWFueV9maWVsZBgBIAMoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSCGFueUZpZWxkEjEKCWFwaV9maWVsZBgCIAMoCzIULmdvb2dsZS5wcm90b2J1Zi5BcGlSCGFwaUZpZWxkEkAKDmR1cmF0aW9uX2ZpZWxkGAMgAygLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUg1kdXJhdGlvbkZpZWxkEjcKC2VtcHR5X2ZpZWxkGAQgAygLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgplbXB0eUZpZWxkEkQKEGZpZWxkX21hc2tfZmllbGQYBSADKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUg5maWVsZE1hc2tGaWVsZBJQChRzb3VyY2VfY29udGV4dF9maWVsZBgGIAMoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0UhJzb3VyY2VDb250ZXh0RmllbGQSOgoMc3RydWN0X2ZpZWxkGAcgAygLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFILc3RydWN0RmllbGQSQwoPdGltZXN0YW1wX2ZpZWxkGAggAygLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIOdGltZXN0YW1wRmllbGQSNAoKdHlwZV9maWVsZBgJIAMoCzIVLmdvb2dsZS5wcm90b2J1Zi5UeXBlUgl0eXBlRmllbGQSPwoMZG91YmxlX2ZpZWxkGAogAygLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUgtkb3VibGVGaWVsZBI8CgtmbG9hdF9maWVsZBgLIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5GbG9hdFZhbHVlUgpmbG9hdEZpZWxkEjwKC2ludDY0X2ZpZWxkGAwgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSCmludDY0RmllbGQSPwoMdWludDY0X2ZpZWxkGA0gAygLMhwuZ29vZ2xlLnByb3RvYnVmLlVJbnQ2NFZhbHVlUgt1aW50NjRGaWVsZBI8CgtpbnQzMl9maWVsZBgOIAMoCzIbLmdvb2dsZS5wcm90b2J1Zi5JbnQzMlZhbHVlUgppbnQzMkZpZWxkEj8KDHVpbnQzMl9maWVsZBgPIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVILdWludDMyRmllbGQSOQoKYm9vbF9maWVsZBgQIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSCWJvb2xGaWVsZBI/CgxzdHJpbmdfZmllbGQYESADKAsyHC5nb29nbGUucHJvdG9idWYuU3RyaW5nVmFsdWVSC3N0cmluZ0ZpZWxkEjwKC2J5dGVzX2ZpZWxkGBIgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSCmJ5dGVzRmllbGQirwkKE09uZW9mV2VsbEtub3duVHlwZXMSMwoJYW55X2ZpZWxkGAEgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueUgAUghhbnlGaWVsZBIzCglhcGlfZmllbGQYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQXBpSABSCGFwaUZpZWxkEkIKDmR1cmF0aW9uX2ZpZWxkGAMgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uSABSDWR1cmF0aW9uRmllbGQSOQoLZW1wdHlfZmllbGQYBCABKAsyFi5nb29nbGUucHJvdG9idWYuRW1wdHlIAFIKZW1wdHlGaWVsZBJGChBmaWVsZF9tYXNrX2ZpZWxkGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFza0gAUg5maWVsZE1hc2tGaWVsZBJSChRzb3VyY2VfY29udGV4dF9maWVsZBgGIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0SABSEnNvdXJjZUNvbnRleHRGaWVsZBI8CgxzdHJ1Y3RfZmllbGQYByABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0SABSC3N0cnVjdEZpZWxkEkUKD3RpbWVzdGFtcF9maWVsZBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBIAFIOdGltZXN0YW1wRmllbGQSNgoKdHlwZV9maWVsZBgJIAEoCzIVLmdvb2dsZS5wcm90b2J1Zi5UeXBlSABSCXR5cGVGaWVsZBJBCgxkb3VibGVfZmllbGQYCiABKAsyHC5nb29nbGUucHJvdG9idWYuRG91YmxlVmFsdWVIAFILZG91YmxlRmllbGQSPgoLZmxvYXRfZmllbGQYCyABKAsyGy5nb29nbGUucHJvdG9idWYuRmxvYXRWYWx1ZUgAUgpmbG9hdEZpZWxkEj4KC2ludDY0X2ZpZWxkGAwgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVIAFIKaW50NjRGaWVsZBJBCgx1aW50NjRfZmllbGQYDSABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVIAFILdWludDY0RmllbGQSPgoLaW50MzJfZmllbGQYDiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZUgAUgppbnQzMkZpZWxkEkEKDHVpbnQzMl9maWVsZBgPIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZUgAUgt1aW50MzJGaWVsZBI7Cgpib29sX2ZpZWxkGBAgASgLMhouZ29vZ2xlLnByb3RvYnVmLkJvb2xWYWx1ZUgAUglib29sRmllbGQSQQoMc3RyaW5nX2ZpZWxkGBEgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlSABSC3N0cmluZ0ZpZWxkEj4KC2J5dGVzX2ZpZWxkGBIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVIAFIKYnl0ZXNGaWVsZEINCgtvbmVvZl9maWVsZCLYGQoRTWFwV2VsbEtub3duVHlwZXMSTwoJYW55X2ZpZWxkGAEgAygLMjIucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQW55RmllbGRFbnRyeVIIYW55RmllbGQSTwoJYXBpX2ZpZWxkGAIgAygLMjIucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQXBpRmllbGRFbnRyeVIIYXBpRmllbGQSXgoOZHVyYXRpb25fZmllbGQYAyADKAsyNy5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5EdXJhdGlvbkZpZWxkRW50cnlSDWR1cmF0aW9uRmllbGQSVQoLZW1wdHlfZmllbGQYBCADKAsyNC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5FbXB0eUZpZWxkRW50cnlSCmVtcHR5RmllbGQSYgoQZmllbGRfbWFza19maWVsZBgFIAMoCzI4LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkZpZWxkTWFza0ZpZWxkRW50cnlSDmZpZWxkTWFza0ZpZWxkEm4KFHNvdXJjZV9jb250ZXh0X2ZpZWxkGAYgAygLMjwucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuU291cmNlQ29udGV4dEZpZWxkRW50cnlSEnNvdXJjZUNvbnRleHRGaWVsZBJYCgxzdHJ1Y3RfZmllbGQYByADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5TdHJ1Y3RGaWVsZEVudHJ5UgtzdHJ1Y3RGaWVsZBJhCg90aW1lc3RhbXBfZmllbGQYCCADKAsyOC5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5UaW1lc3RhbXBGaWVsZEVudHJ5Ug50aW1lc3RhbXBGaWVsZBJSCgp0eXBlX2ZpZWxkGAkgAygLMjMucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuVHlwZUZpZWxkRW50cnlSCXR5cGVGaWVsZBJYCgxkb3VibGVfZmllbGQYCiADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5Eb3VibGVGaWVsZEVudHJ5Ugtkb3VibGVGaWVsZBJVCgtmbG9hdF9maWVsZBgLIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkZsb2F0RmllbGRFbnRyeVIKZmxvYXRGaWVsZBJVCgtpbnQ2NF9maWVsZBgMIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkludDY0RmllbGRFbnRyeVIKaW50NjRGaWVsZBJYCgx1aW50NjRfZmllbGQYDSADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5VaW50NjRGaWVsZEVudHJ5Ugt1aW50NjRGaWVsZBJVCgtpbnQzMl9maWVsZBgOIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkludDMyRmllbGRFbnRyeVIKaW50MzJGaWVsZBJYCgx1aW50MzJfZmllbGQYDyADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5VaW50MzJGaWVsZEVudHJ5Ugt1aW50MzJGaWVsZBJSCgpib29sX2ZpZWxkGBAgAygLMjMucHJvdG9idWZfdW5pdHRlc3QuTWFwV2VsbEtub3duVHlwZXMuQm9vbEZpZWxkRW50cnlSCWJvb2xGaWVsZBJYCgxzdHJpbmdfZmllbGQYESADKAsyNS5wcm90b2J1Zl91bml0dGVzdC5NYXBXZWxsS25vd25UeXBlcy5TdHJpbmdGaWVsZEVudHJ5UgtzdHJpbmdGaWVsZBJVCgtieXRlc19maWVsZBgSIAMoCzI0LnByb3RvYnVmX3VuaXR0ZXN0Lk1hcFdlbGxLbm93blR5cGVzLkJ5dGVzRmllbGRFbnRyeVIKYnl0ZXNGaWVsZBpRCg1BbnlGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EioKBXZhbHVlGAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIFdmFsdWU6AjgBGlEKDUFwaUZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSKgoFdmFsdWUYAiABKAsyFC5nb29nbGUucHJvdG9idWYuQXBpUgV2YWx1ZToCOAEaWwoSRHVyYXRpb25GaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5Ei8KBXZhbHVlGAIgASgLMhkuZ29vZ2xlLnByb3RvYnVmLkR1cmF0aW9uUgV2YWx1ZToCOAEaVQoPRW1wdHlGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EiwKBXZhbHVlGAIgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgV2YWx1ZToCOAEaXQoTRmllbGRNYXNrRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIwCgV2YWx1ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSBXZhbHVlOgI4ARplChdTb3VyY2VDb250ZXh0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRI0CgV2YWx1ZRgCIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb250ZXh0UgV2YWx1ZToCOAEaVwoQU3RydWN0RmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRItCgV2YWx1ZRgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3RSBXZhbHVlOgI4ARpdChNUaW1lc3RhbXBGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjAKBXZhbHVlGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIFdmFsdWU6AjgBGlMKDlR5cGVGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EisKBXZhbHVlGAIgASgLMhUuZ29vZ2xlLnByb3RvYnVmLlR5cGVSBXZhbHVlOgI4ARpcChBEb3VibGVGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjIKBXZhbHVlGAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkRvdWJsZVZhbHVlUgV2YWx1ZToCOAEaWgoPRmxvYXRGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjEKBXZhbHVlGAIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSBXZhbHVlOgI4ARpaCg9JbnQ2NEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50NjRWYWx1ZVIFdmFsdWU6AjgBGlwKEFVpbnQ2NEZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMgoFdmFsdWUYAiABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDY0VmFsdWVSBXZhbHVlOgI4ARpaCg9JbnQzMkZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMQoFdmFsdWUYAiABKAsyGy5nb29nbGUucHJvdG9idWYuSW50MzJWYWx1ZVIFdmFsdWU6AjgBGlwKEFVpbnQzMkZpZWxkRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSMgoFdmFsdWUYAiABKAsyHC5nb29nbGUucHJvdG9idWYuVUludDMyVmFsdWVSBXZhbHVlOgI4ARpYCg5Cb29sRmllbGRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIwCgV2YWx1ZRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5Cb29sVmFsdWVSBXZhbHVlOgI4ARpcChBTdHJpbmdGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjIKBXZhbHVlGAIgASgLMhwuZ29vZ2xlLnByb3RvYnVmLlN0cmluZ1ZhbHVlUgV2YWx1ZToCOAEaWgoPQnl0ZXNGaWVsZEVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EjEKBXZhbHVlGAIgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSBXZhbHVlOgI4AUI5Chhjb20uZ29vZ2xlLnByb3RvYnVmLnRlc3RQAaoCGkdvb2dsZS5Qcm90b2J1Zi5UZXN0UHJvdG9zSuQ0CgcSBR4AjwEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D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BAMCDwYSBIwBAiYKDQoFBAMCDwESBIwBJzEKDQoFBAMCDwMSBIwBNDYKDAoEBAMCEBIEjQECOwoNCgUEAwIQBhIEjQECKAoNCgUEAwIQARIEjQEpNQoNCgUEAwIQAxIEjQE4OgoMCgQEAwIREgSOAQI5Cg0KBQQDAhEGEgSOAQInCg0KBQQDAhEBEgSOASgzCg0KBQQDAhEDEgSOATY4YgZwcm90bzMKpNEBCipnb29nbGUvcHJvdG9idWYvdGVzdF9tZXNzYWdlc19wcm90bzMucHJvdG8SHXByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zGhlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGh5nb29nbGUvcHJvdG9idWYvZHVyYXRpb24ucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9maWVsZF9tYXNrLnByb3RvGhxnb29nbGUvcHJvdG9idWYvc3RydWN0LnByb3RvGh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvGh5nb29nbGUvcHJvdG9idWYvd3JhcHBlcnMucHJvdG8imVsKElRlc3RBbGxUeXBlc1Byb3RvMxIlCg5vcHRpb25hbF9pbnQzMhgBIAEoBVINb3B0aW9uYWxJbnQzMhIlCg5vcHRpb25hbF9pbnQ2NBgCIAEoA1INb3B0aW9uYWxJbnQ2NBInCg9vcHRpb25hbF91aW50MzIYAyABKA1SDm9wdGlvbmFsVWludDMyEicKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBFIOb3B0aW9uYWxVaW50NjQSJwoPb3B0aW9uYWxfc2ludDMyGAUgASgRUg5vcHRpb25hbFNpbnQzMhInCg9vcHRpb25hbF9zaW50NjQYBiABKBJSDm9wdGlvbmFsU2ludDY0EikKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdSD29wdGlvbmFsRml4ZWQzMhIpChBvcHRpb25hbF9maXhlZDY0GAggASgGUg9vcHRpb25hbEZpeGVkNjQSKwoRb3B0aW9uYWxfc2ZpeGVkMzIYCSABKA9SEG9wdGlvbmFsU2ZpeGVkMzISKwoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBSEG9wdGlvbmFsU2ZpeGVkNjQSJQoOb3B0aW9uYWxfZmxvYXQYCyABKAJSDW9wdGlvbmFsRmxvYXQSJwoPb3B0aW9uYWxfZG91YmxlGAwgASgBUg5vcHRpb25hbERvdWJsZRIjCg1vcHRpb25hbF9ib29sGA0gASgIUgxvcHRpb25hbEJvb2wSJwoPb3B0aW9uYWxfc3RyaW5nGA4gASgJUg5vcHRpb25hbFN0cmluZxIlCg5vcHRpb25hbF9ieXRlcxgPIAEoDFINb3B0aW9uYWxCeXRlcxJ3ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2USZwoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMi0ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuRm9yZWlnbk1lc3NhZ2VSFm9wdGlvbmFsRm9yZWlnbk1lc3NhZ2USbgoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bVISb3B0aW9uYWxOZXN0ZWRFbnVtEl4KFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIqLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25FbnVtUhNvcHRpb25hbEZvcmVpZ25FbnVtEnEKFW9wdGlvbmFsX2FsaWFzZWRfZW51bRgXIAEoDjI9LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5BbGlhc2VkRW51bVITb3B0aW9uYWxBbGlhc2VkRW51bRI2ChVvcHRpb25hbF9zdHJpbmdfcGllY2UYGCABKAlCAggCUhNvcHRpb25hbFN0cmluZ1BpZWNlEicKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggBUgxvcHRpb25hbENvcmQSXgoRcmVjdXJzaXZlX21lc3NhZ2UYGyABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzNSEHJlY3Vyc2l2ZU1lc3NhZ2USJQoOcmVwZWF0ZWRfaW50MzIYHyADKAVSDXJlcGVhdGVkSW50MzISJQoOcmVwZWF0ZWRfaW50NjQYICADKANSDXJlcGVhdGVkSW50NjQSJwoPcmVwZWF0ZWRfdWludDMyGCEgAygNUg5yZXBlYXRlZFVpbnQzMhInCg9yZXBlYXRlZF91aW50NjQYIiADKARSDnJlcGVhdGVkVWludDY0EicKD3JlcGVhdGVkX3NpbnQzMhgjIAMoEVIOcmVwZWF0ZWRTaW50MzISJwoPcmVwZWF0ZWRfc2ludDY0GCQgAygSUg5yZXBlYXRlZFNpbnQ2NBIpChByZXBlYXRlZF9maXhlZDMyGCUgAygHUg9yZXBlYXRlZEZpeGVkMzISKQoQcmVwZWF0ZWRfZml4ZWQ2NBgmIAMoBlIPcmVwZWF0ZWRGaXhlZDY0EisKEXJlcGVhdGVkX3NmaXhlZDMyGCcgAygPUhByZXBlYXRlZFNmaXhlZDMyEisKEXJlcGVhdGVkX3NmaXhlZDY0GCggAygQUhByZXBlYXRlZFNmaXhlZDY0EiUKDnJlcGVhdGVkX2Zsb2F0GCkgAygCUg1yZXBlYXRlZEZsb2F0EicKD3JlcGVhdGVkX2RvdWJsZRgqIAMoAVIOcmVwZWF0ZWREb3VibGUSIwoNcmVwZWF0ZWRfYm9vbBgrIAMoCFIMcmVwZWF0ZWRCb29sEicKD3JlcGVhdGVkX3N0cmluZxgsIAMoCVIOcmVwZWF0ZWRTdHJpbmcSJQoOcmVwZWF0ZWRfYnl0ZXMYLSADKAxSDXJlcGVhdGVkQnl0ZXMSdwoXcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2UYMCADKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZVIVcmVwZWF0ZWROZXN0ZWRNZXNzYWdlEmcKGHJlcGVhdGVkX2ZvcmVpZ25fbWVzc2FnZRgxIAMoCzItLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLkZvcmVpZ25NZXNzYWdlUhZyZXBlYXRlZEZvcmVpZ25NZXNzYWdlEm4KFHJlcGVhdGVkX25lc3RlZF9lbnVtGDMgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1SEnJlcGVhdGVkTmVzdGVkRW51bRJeChVyZXBlYXRlZF9mb3JlaWduX2VudW0YNCADKA4yKi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduRW51bVITcmVwZWF0ZWRGb3JlaWduRW51bRI2ChVyZXBlYXRlZF9zdHJpbmdfcGllY2UYNiADKAlCAggCUhNyZXBlYXRlZFN0cmluZ1BpZWNlEicKDXJlcGVhdGVkX2NvcmQYNyADKAlCAggBUgxyZXBlYXRlZENvcmQSJQoMcGFja2VkX2ludDMyGEsgAygFQgIQAVILcGFja2VkSW50MzISJQoMcGFja2VkX2ludDY0GEwgAygDQgIQAVILcGFja2VkSW50NjQSJwoNcGFja2VkX3VpbnQzMhhNIAMoDUICEAFSDHBhY2tlZFVpbnQzMhInCg1wYWNrZWRfdWludDY0GE4gAygEQgIQAVIMcGFja2VkVWludDY0EicKDXBhY2tlZF9zaW50MzIYTyADKBFCAhABUgxwYWNrZWRTaW50MzISJwoNcGFja2VkX3NpbnQ2NBhQIAMoEkICEAFSDHBhY2tlZFNpbnQ2NBIpCg5wYWNrZWRfZml4ZWQzMhhRIAMoB0ICEAFSDXBhY2tlZEZpeGVkMzISKQoOcGFja2VkX2ZpeGVkNjQYUiADKAZCAhABUg1wYWNrZWRGaXhlZDY0EisKD3BhY2tlZF9zZml4ZWQzMhhTIAMoD0ICEAFSDnBhY2tlZFNmaXhlZDMyEisKD3BhY2tlZF9zZml4ZWQ2NBhUIAMoEEICEAFSDnBhY2tlZFNmaXhlZDY0EiUKDHBhY2tlZF9mbG9hdBhVIAMoAkICEAFSC3BhY2tlZEZsb2F0EicKDXBhY2tlZF9kb3VibGUYViADKAFCAhABUgxwYWNrZWREb3VibGUSIwoLcGFja2VkX2Jvb2wYVyADKAhCAhABUgpwYWNrZWRCb29sEm4KEnBhY2tlZF9uZXN0ZWRfZW51bRhYIAMoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5OZXN0ZWRFbnVtQgIQAVIQcGFja2VkTmVzdGVkRW51bRIpCg51bnBhY2tlZF9pbnQzMhhZIAMoBUICEABSDXVucGFja2VkSW50MzISKQoOdW5wYWNrZWRfaW50NjQYWiADKANCAhAAUg11bnBhY2tlZEludDY0EisKD3VucGFja2VkX3VpbnQzMhhbIAMoDUICEABSDnVucGFja2VkVWludDMyEisKD3VucGFja2VkX3VpbnQ2NBhcIAMoBEICEABSDnVucGFja2VkVWludDY0EisKD3VucGFja2VkX3NpbnQzMhhdIAMoEUICEABSDnVucGFja2VkU2ludDMyEisKD3VucGFja2VkX3NpbnQ2NBheIAMoEkICEABSDnVucGFja2VkU2ludDY0Ei0KEHVucGFja2VkX2ZpeGVkMzIYXyADKAdCAhAAUg91bnBhY2tlZEZpeGVkMzISLQoQdW5wYWNrZWRfZml4ZWQ2NBhgIAMoBkICEABSD3VucGFja2VkRml4ZWQ2NBIvChF1bnBhY2tlZF9zZml4ZWQzMhhhIAMoD0ICEABSEHVucGFja2VkU2ZpeGVkMzISLwoRdW5wYWNrZWRfc2ZpeGVkNjQYYiADKBBCAhAAUhB1bnBhY2tlZFNmaXhlZDY0EikKDnVucGFja2VkX2Zsb2F0GGMgAygCQgIQAFINdW5wYWNrZWRGbG9hdBIrCg91bnBhY2tlZF9kb3VibGUYZCADKAFCAhAAUg51bnBhY2tlZERvdWJsZRInCg11bnBhY2tlZF9ib29sGGUgAygIQgIQAFIMdW5wYWNrZWRCb29sEnIKFHVucGFja2VkX25lc3RlZF9lbnVtGGYgAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1CAhAAUhJ1bnBhY2tlZE5lc3RlZEVudW0SbAoPbWFwX2ludDMyX2ludDMyGDggAygLMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEludDMySW50MzJFbnRyeVINbWFwSW50MzJJbnQzMhJsCg9tYXBfaW50NjRfaW50NjQYOSADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50NjRJbnQ2NEVudHJ5Ug1tYXBJbnQ2NEludDY0EnIKEW1hcF91aW50MzJfdWludDMyGDogAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFVpbnQzMlVpbnQzMkVudHJ5Ug9tYXBVaW50MzJVaW50MzIScgoRbWFwX3VpbnQ2NF91aW50NjQYOyADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwVWludDY0VWludDY0RW50cnlSD21hcFVpbnQ2NFVpbnQ2NBJyChFtYXBfc2ludDMyX3NpbnQzMhg8IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTaW50MzJTaW50MzJFbnRyeVIPbWFwU2ludDMyU2ludDMyEnIKEW1hcF9zaW50NjRfc2ludDY0GD0gAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNpbnQ2NFNpbnQ2NEVudHJ5Ug9tYXBTaW50NjRTaW50NjQSeAoTbWFwX2ZpeGVkMzJfZml4ZWQzMhg+IAMoCzJILnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBGaXhlZDMyRml4ZWQzMkVudHJ5UhFtYXBGaXhlZDMyRml4ZWQzMhJ4ChNtYXBfZml4ZWQ2NF9maXhlZDY0GD8gAygLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcEZpeGVkNjRGaXhlZDY0RW50cnlSEW1hcEZpeGVkNjRGaXhlZDY0En4KFW1hcF9zZml4ZWQzMl9zZml4ZWQzMhhAIAMoCzJKLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTZml4ZWQzMlNmaXhlZDMyRW50cnlSE21hcFNmaXhlZDMyU2ZpeGVkMzISfgoVbWFwX3NmaXhlZDY0X3NmaXhlZDY0GEEgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeVITbWFwU2ZpeGVkNjRTZml4ZWQ2NBJsCg9tYXBfaW50MzJfZmxvYXQYQiADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJGbG9hdEVudHJ5Ug1tYXBJbnQzMkZsb2F0Em8KEG1hcF9pbnQzMl9kb3VibGUYQyADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwSW50MzJEb3VibGVFbnRyeVIObWFwSW50MzJEb3VibGUSZgoNbWFwX2Jvb2xfYm9vbBhEIAMoCzJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBCb29sQm9vbEVudHJ5UgttYXBCb29sQm9vbBJyChFtYXBfc3RyaW5nX3N0cmluZxhFIAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdTdHJpbmdFbnRyeVIPbWFwU3RyaW5nU3RyaW5nEm8KEG1hcF9zdHJpbmdfYnl0ZXMYRiADKAsyRS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nQnl0ZXNFbnRyeVIObWFwU3RyaW5nQnl0ZXMSiAEKGW1hcF9zdHJpbmdfbmVzdGVkX21lc3NhZ2UYRyADKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nTmVzdGVkTWVzc2FnZUVudHJ5UhZtYXBTdHJpbmdOZXN0ZWRNZXNzYWdlEosBChptYXBfc3RyaW5nX2ZvcmVpZ25fbWVzc2FnZRhIIAMoCzJOLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8zLlRlc3RBbGxUeXBlc1Byb3RvMy5NYXBTdHJpbmdGb3JlaWduTWVzc2FnZUVudHJ5UhdtYXBTdHJpbmdGb3JlaWduTWVzc2FnZRJ/ChZtYXBfc3RyaW5nX25lc3RlZF9lbnVtGEkgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk1hcFN0cmluZ05lc3RlZEVudW1FbnRyeVITbWFwU3RyaW5nTmVzdGVkRW51bRKCAQoXbWFwX3N0cmluZ19mb3JlaWduX2VudW0YSiADKAsySy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeVIUbWFwU3RyaW5nRm9yZWlnbkVudW0SIwoMb25lb2ZfdWludDMyGG8gASgNSABSC29uZW9mVWludDMyEnMKFG9uZW9mX25lc3RlZF9tZXNzYWdlGHAgASgLMj8ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZE1lc3NhZ2VIAFISb25lb2ZOZXN0ZWRNZXNzYWdlEiMKDG9uZW9mX3N0cmluZxhxIAEoCUgAUgtvbmVvZlN0cmluZxIhCgtvbmVvZl9ieXRlcxhyIAEoDEgAUgpvbmVvZkJ5dGVzEh8KCm9uZW9mX2Jvb2wYcyABKAhIAFIJb25lb2ZCb29sEiMKDG9uZW9mX3VpbnQ2NBh0IAEoBEgAUgtvbmVvZlVpbnQ2NBIhCgtvbmVvZl9mbG9hdBh1IAEoAkgAUgpvbmVvZkZsb2F0EiMKDG9uZW9mX2RvdWJsZRh2IAEoAUgAUgtvbmVvZkRvdWJsZRJdCgpvbmVvZl9lbnVtGHcgASgOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzMuVGVzdEFsbFR5cGVzUHJvdG8zLk5lc3RlZEVudW1IAFIJb25lb2ZFbnVtEkYKEG9uZW9mX251bGxfdmFsdWUYeCABKA4yGi5nb29nbGUucHJvdG9idWYuTnVsbFZhbHVlSABSDm9uZW9mTnVsbFZhbHVlEk8KFW9wdGlvbmFsX2Jvb2xfd3JhcHBlchjJASABKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUhNvcHRpb25hbEJvb2xXcmFwcGVyElIKFm9wdGlvbmFsX2ludDMyX3dyYXBwZXIYygEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSFG9wdGlvbmFsSW50MzJXcmFwcGVyElIKFm9wdGlvbmFsX2ludDY0X3dyYXBwZXIYywEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSFG9wdGlvbmFsSW50NjRXcmFwcGVyElUKF29wdGlvbmFsX3VpbnQzMl93cmFwcGVyGMwBIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVIVb3B0aW9uYWxVaW50MzJXcmFwcGVyElUKF29wdGlvbmFsX3VpbnQ2NF93cmFwcGVyGM0BIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVIVb3B0aW9uYWxVaW50NjRXcmFwcGVyElIKFm9wdGlvbmFsX2Zsb2F0X3dyYXBwZXIYzgEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSFG9wdGlvbmFsRmxvYXRXcmFwcGVyElUKF29wdGlvbmFsX2RvdWJsZV93cmFwcGVyGM8BIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVIVb3B0aW9uYWxEb3VibGVXcmFwcGVyElUKF29wdGlvbmFsX3N0cmluZ193cmFwcGVyGNABIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVIVb3B0aW9uYWxTdHJpbmdXcmFwcGVyElIKFm9wdGlvbmFsX2J5dGVzX3dyYXBwZXIY0QEgASgLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSFG9wdGlvbmFsQnl0ZXNXcmFwcGVyEk8KFXJlcGVhdGVkX2Jvb2xfd3JhcHBlchjTASADKAsyGi5nb29nbGUucHJvdG9idWYuQm9vbFZhbHVlUhNyZXBlYXRlZEJvb2xXcmFwcGVyElIKFnJlcGVhdGVkX2ludDMyX3dyYXBwZXIY1AEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDMyVmFsdWVSFHJlcGVhdGVkSW50MzJXcmFwcGVyElIKFnJlcGVhdGVkX2ludDY0X3dyYXBwZXIY1QEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkludDY0VmFsdWVSFHJlcGVhdGVkSW50NjRXcmFwcGVyElUKF3JlcGVhdGVkX3VpbnQzMl93cmFwcGVyGNYBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50MzJWYWx1ZVIVcmVwZWF0ZWRVaW50MzJXcmFwcGVyElUKF3JlcGVhdGVkX3VpbnQ2NF93cmFwcGVyGNcBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5VSW50NjRWYWx1ZVIVcmVwZWF0ZWRVaW50NjRXcmFwcGVyElIKFnJlcGVhdGVkX2Zsb2F0X3dyYXBwZXIY2AEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkZsb2F0VmFsdWVSFHJlcGVhdGVkRmxvYXRXcmFwcGVyElUKF3JlcGVhdGVkX2RvdWJsZV93cmFwcGVyGNkBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5Eb3VibGVWYWx1ZVIVcmVwZWF0ZWREb3VibGVXcmFwcGVyElUKF3JlcGVhdGVkX3N0cmluZ193cmFwcGVyGNoBIAMoCzIcLmdvb2dsZS5wcm90b2J1Zi5TdHJpbmdWYWx1ZVIVcmVwZWF0ZWRTdHJpbmdXcmFwcGVyElIKFnJlcGVhdGVkX2J5dGVzX3dyYXBwZXIY2wEgAygLMhsuZ29vZ2xlLnByb3RvYnVmLkJ5dGVzVmFsdWVSFHJlcGVhdGVkQnl0ZXNXcmFwcGVyEkcKEW9wdGlvbmFsX2R1cmF0aW9uGK0CIAEoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblIQb3B0aW9uYWxEdXJhdGlvbhJKChJvcHRpb25hbF90aW1lc3RhbXAYrgIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIRb3B0aW9uYWxUaW1lc3RhbXASSwoTb3B0aW9uYWxfZmllbGRfbWFzaxivAiABKAsyGi5nb29nbGUucHJvdG9idWYuRmllbGRNYXNrUhFvcHRpb25hbEZpZWxkTWFzaxJBCg9vcHRpb25hbF9zdHJ1Y3QYsAIgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdFIOb3B0aW9uYWxTdHJ1Y3QSOAoMb3B0aW9uYWxfYW55GLECIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSC29wdGlvbmFsQW55Ej4KDm9wdGlvbmFsX3ZhbHVlGLICIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZVINb3B0aW9uYWxWYWx1ZRJLChNvcHRpb25hbF9udWxsX3ZhbHVlGLMCIAEoDjIaLmdvb2dsZS5wcm90b2J1Zi5OdWxsVmFsdWVSEW9wdGlvbmFsTnVsbFZhbHVlEkcKEXJlcGVhdGVkX2R1cmF0aW9uGLcCIAMoCzIZLmdvb2dsZS5wcm90b2J1Zi5EdXJhdGlvblIQcmVwZWF0ZWREdXJhdGlvbhJKChJyZXBlYXRlZF90aW1lc3RhbXAYuAIgAygLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIRcmVwZWF0ZWRUaW1lc3RhbXASSgoScmVwZWF0ZWRfZmllbGRtYXNrGLkCIAMoCzIaLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE1hc2tSEXJlcGVhdGVkRmllbGRtYXNrEkEKD3JlcGVhdGVkX3N0cnVjdBjEAiADKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ug5yZXBlYXRlZFN0cnVjdBI4CgxyZXBlYXRlZF9hbnkYuwIgAygLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVILcmVwZWF0ZWRBbnkSPgoOcmVwZWF0ZWRfdmFsdWUYvAIgAygLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlUg1yZXBlYXRlZFZhbHVlEksKE3JlcGVhdGVkX2xpc3RfdmFsdWUYvQIgAygLMhouZ29vZ2xlLnByb3RvYnVmLkxpc3RWYWx1ZVIRcmVwZWF0ZWRMaXN0VmFsdWUSHwoKZmllbGRuYW1lMRiRAyABKAVSCmZpZWxkbmFtZTESIAoLZmllbGRfbmFtZTIYkgMgASgFUgpmaWVsZE5hbWUyEiEKDF9maWVsZF9uYW1lMxiTAyABKAVSCkZpZWxkTmFtZTMSIgoNZmllbGRfX25hbWU0XxiUAyABKAVSCmZpZWxkTmFtZTQSIQoLZmllbGQwbmFtZTUYlQMgASgFUgtmaWVsZDBuYW1lNRIjCg1maWVsZF8wX25hbWU2GJYDIAEoBVILZmllbGQwTmFtZTYSHwoKZmllbGROYW1lNxiXAyABKAVSCmZpZWxkTmFtZTcSHwoKRmllbGROYW1lOBiYAyABKAVSCkZpZWxkTmFtZTgSIAoLZmllbGRfTmFtZTkYmQMgASgFUgpmaWVsZE5hbWU5EiIKDEZpZWxkX05hbWUxMBiaAyABKAVSC0ZpZWxkTmFtZTEwEiIKDEZJRUxEX05BTUUxMRibAyABKAVSC0ZJRUxETkFNRTExEiIKDEZJRUxEX25hbWUxMhicAyABKAVSC0ZJRUxETmFtZTEyEiQKDl9fZmllbGRfbmFtZTEzGJ0DIAEoBVILRmllbGROYW1lMTMSJAoOX19GaWVsZF9uYW1lMTQYngMgASgFUgtGaWVsZE5hbWUxNBIjCg1maWVsZF9fbmFtZTE1GJ8DIAEoBVILZmllbGROYW1lMTUSIwoNZmllbGRfX05hbWUxNhigAyABKAVSC2ZpZWxkTmFtZTE2EiQKDmZpZWxkX25hbWUxN19fGKEDIAEoBVILZmllbGROYW1lMTcSJAoORmllbGRfbmFtZTE4X18YogMgASgFUgtGaWVsZE5hbWUxOBpyCg1OZXN0ZWRNZXNzYWdlEgwKAWEYASABKAVSAWESUwoLY29yZWN1cnNpdmUYAiABKAsyMS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzNSC2NvcmVjdXJzaXZlGkAKEk1hcEludDMySW50MzJFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoBVIFdmFsdWU6AjgBGkAKEk1hcEludDY0SW50NjRFbnRyeRIQCgNrZXkYASABKANSA2tleRIUCgV2YWx1ZRgCIAEoA1IFdmFsdWU6AjgBGkIKFE1hcFVpbnQzMlVpbnQzMkVudHJ5EhAKA2tleRgBIAEoDVIDa2V5EhQKBXZhbHVlGAIgASgNUgV2YWx1ZToCOAEaQgoUTWFwVWludDY0VWludDY0RW50cnkSEAoDa2V5GAEgASgEUgNrZXkSFAoFdmFsdWUYAiABKARSBXZhbHVlOgI4ARpCChRNYXBTaW50MzJTaW50MzJFbnRyeRIQCgNrZXkYASABKBFSA2tleRIUCgV2YWx1ZRgCIAEoEVIFdmFsdWU6AjgBGkIKFE1hcFNpbnQ2NFNpbnQ2NEVudHJ5EhAKA2tleRgBIAEoElIDa2V5EhQKBXZhbHVlGAIgASgSUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQzMkZpeGVkMzJFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGkQKFk1hcEZpeGVkNjRGaXhlZDY0RW50cnkSEAoDa2V5GAEgASgGUgNrZXkSFAoFdmFsdWUYAiABKAZSBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQzMlNmaXhlZDMyRW50cnkSEAoDa2V5GAEgASgPUgNrZXkSFAoFdmFsdWUYAiABKA9SBXZhbHVlOgI4ARpGChhNYXBTZml4ZWQ2NFNmaXhlZDY0RW50cnkSEAoDa2V5GAEgASgQUgNrZXkSFAoFdmFsdWUYAiABKBBSBXZhbHVlOgI4ARpAChJNYXBJbnQzMkZsb2F0RW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAJSBXZhbHVlOgI4ARpBChNNYXBJbnQzMkRvdWJsZUVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgBUgV2YWx1ZToCOAEaPgoQTWFwQm9vbEJvb2xFbnRyeRIQCgNrZXkYASABKAhSA2tleRIUCgV2YWx1ZRgCIAEoCFIFdmFsdWU6AjgBGkIKFE1hcFN0cmluZ1N0cmluZ0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEaQQoTTWFwU3RyaW5nQnl0ZXNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoDFIFdmFsdWU6AjgBGooBChtNYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSVQoFdmFsdWUYAiABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkTWVzc2FnZVIFdmFsdWU6AjgBGnkKHE1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSQwoFdmFsdWUYAiABKAsyLS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduTWVzc2FnZVIFdmFsdWU6AjgBGoQBChhNYXBTdHJpbmdOZXN0ZWRFbnVtRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSUgoFdmFsdWUYAiABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5UZXN0QWxsVHlwZXNQcm90bzMuTmVzdGVkRW51bVIFdmFsdWU6AjgBGnMKGU1hcFN0cmluZ0ZvcmVpZ25FbnVtRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSQAoFdmFsdWUYAiABKA4yKi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMy5Gb3JlaWduRW51bVIFdmFsdWU6AjgBIjkKCk5lc3RlZEVudW0SBwoDRk9PEAASBwoDQkFSEAESBwoDQkFaEAISEAoDTkVHEP///////////wEiWQoLQWxpYXNlZEVudW0SDQoJQUxJQVNfRk9PEAASDQoJQUxJQVNfQkFSEAESDQoJQUxJQVNfQkFaEAISBwoDTU9PEAISBwoDbW9vEAISBwoDYkF6EAIaAhABQg0KC29uZW9mX2ZpZWxkSgYI9QMQ/wMiHgoORm9yZWlnbk1lc3NhZ2USDAoBYxgBIAEoBVIBYyIWChROdWxsSHlwb3RoZXNpc1Byb3RvMyIvCg5FbnVtT25seVByb3RvMyIdCgRCb29sEgoKBmtGYWxzZRAAEgkKBWtUcnVlEAEqQAoLRm9yZWlnbkVudW0SDwoLRk9SRUlHTl9GT08QABIPCgtGT1JFSUdOX0JBUhABEg8KC0ZPUkVJR05fQkFaEAJCOAooY29tLmdvb2dsZS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvM0gB+AEBogIGUHJvdG8zSpFyCgcSBSUAnwIBCsANCgEMEgMlABIytQ0gUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgogVGVzdCBzY2hlbWEgZm9yIHByb3RvMyBtZXNzYWdlcy4gIFRoaXMgdGVzdCBzY2hlbWEgaXMgdXNlZCBieToKCiAtIGJlbmNobWFya3MKIC0gZnV6eiB0ZXN0cwogLSBjb25mb3JtYW5jZSB0ZXN0cwoKCggKAQISAycAJgoICgEIEgMpAEEKCQoCCAESAykAQQoICgEIEgMqACQKCQoCCCQSAyoAJAoICgEIEgMtABwKRAoCCAkSAy0AHBo5IFRoaXMgaXMgdGhlIGRlZmF1bHQsIGJ1dCB3ZSBzcGVjaWZ5IGl0IGhlcmUgZXhwbGljaXRseS4KCgkKAgMAEgMvACMKCQoCAwESAzAAKAoJCgIDAhIDMQAqCgkKAgMDEgMyACYKCQoCAwQSAzMAKQoJCgIDBRIDNAAoCggKAQgSAzYAHwoJCgIIHxIDNgAfCtsCCgIEABIFPwCMAgEazQIgVGhpcyBwcm90byBpbmNsdWRlcyBldmVyeSB0eXBlIG9mIGZpZWxkIGluIGJvdGggc2luZ3VsYXIgYW5kIHJlcGVhdGVkCiBmb3Jtcy4KCiBB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Mi5wcm90bxIdcHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIiuVEKElRlc3RBbGxUeXBlc1Byb3RvMhIlCg5vcHRpb25hbF9pbnQzMhgBIAEoBVINb3B0aW9uYWxJbnQzMhIlCg5vcHRpb25hbF9pbnQ2NBgCIAEoA1INb3B0aW9uYWxJbnQ2NBInCg9vcHRpb25hbF91aW50MzIYAyABKA1SDm9wdGlvbmFsVWludDMyEicKD29wdGlvbmFsX3VpbnQ2NBgEIAEoBFIOb3B0aW9uYWxVaW50NjQSJwoPb3B0aW9uYWxfc2ludDMyGAUgASgRUg5vcHRpb25hbFNpbnQzMhInCg9vcHRpb25hbF9zaW50NjQYBiABKBJSDm9wdGlvbmFsU2ludDY0EikKEG9wdGlvbmFsX2ZpeGVkMzIYByABKAdSD29wdGlvbmFsRml4ZWQzMhIpChBvcHRpb25hbF9maXhlZDY0GAggASgGUg9vcHRpb25hbEZpeGVkNjQSKwoRb3B0aW9uYWxfc2ZpeGVkMzIYCSABKA9SEG9wdGlvbmFsU2ZpeGVkMzISKwoRb3B0aW9uYWxfc2ZpeGVkNjQYCiABKBBSEG9wdGlvbmFsU2ZpeGVkNjQSJQoOb3B0aW9uYWxfZmxvYXQYCyABKAJSDW9wdGlvbmFsRmxvYXQSJwoPb3B0aW9uYWxfZG91YmxlGAwgASgBUg5vcHRpb25hbERvdWJsZRIjCg1vcHRpb25hbF9ib29sGA0gASgIUgxvcHRpb25hbEJvb2wSJwoPb3B0aW9uYWxfc3RyaW5nGA4gASgJUg5vcHRpb25hbFN0cmluZxIlCg5vcHRpb25hbF9ieXRlcxgPIAEoDFINb3B0aW9uYWxCeXRlcxJ3ChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgSIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlUhVvcHRpb25hbE5lc3RlZE1lc3NhZ2USbQoYb3B0aW9uYWxfZm9yZWlnbl9tZXNzYWdlGBMgASgLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzJSFm9wdGlvbmFsRm9yZWlnbk1lc3NhZ2USbgoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bVISb3B0aW9uYWxOZXN0ZWRFbnVtEmQKFW9wdGlvbmFsX2ZvcmVpZ25fZW51bRgWIAEoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yUhNvcHRpb25hbEZvcmVpZ25FbnVtEjYKFW9wdGlvbmFsX3N0cmluZ19waWVjZRgYIAEoCUICCAJSE29wdGlvbmFsU3RyaW5nUGllY2USJwoNb3B0aW9uYWxfY29yZBgZIAEoCUICCAFSDG9wdGlvbmFsQ29yZBJeChFyZWN1cnNpdmVfbWVzc2FnZRgbIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMlIQcmVjdXJzaXZlTWVzc2FnZRIlCg5yZXBlYXRlZF9pbnQzMhgfIAMoBVINcmVwZWF0ZWRJbnQzMhIlCg5yZXBlYXRlZF9pbnQ2NBggIAMoA1INcmVwZWF0ZWRJbnQ2NBInCg9yZXBlYXRlZF91aW50MzIYISADKA1SDnJlcGVhdGVkVWludDMyEicKD3JlcGVhdGVkX3VpbnQ2NBgiIAMoBFIOcmVwZWF0ZWRVaW50NjQSJwoPcmVwZWF0ZWRfc2ludDMyGCMgAygRUg5yZXBlYXRlZFNpbnQzMhInCg9yZXBlYXRlZF9zaW50NjQYJCADKBJSDnJlcGVhdGVkU2ludDY0EikKEHJlcGVhdGVkX2ZpeGVkMzIYJSADKAdSD3JlcGVhdGVkRml4ZWQzMhIpChByZXBlYXRlZF9maXhlZDY0GCYgAygGUg9yZXBlYXRlZEZpeGVkNjQSKwoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyADKA9SEHJlcGVhdGVkU2ZpeGVkMzISKwoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBBSEHJlcGVhdGVkU2ZpeGVkNjQSJQoOcmVwZWF0ZWRfZmxvYXQYKSADKAJSDXJlcGVhdGVkRmxvYXQSJwoPcmVwZWF0ZWRfZG91YmxlGCogAygBUg5yZXBlYXRlZERvdWJsZRIjCg1yZXBlYXRlZF9ib29sGCsgAygIUgxyZXBlYXRlZEJvb2wSJwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJUg5yZXBlYXRlZFN0cmluZxIlCg5yZXBlYXRlZF9ieXRlcxgtIAMoDFINcmVwZWF0ZWRCeXRlcxJ3ChdyZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlUhVyZXBlYXRlZE5lc3RlZE1lc3NhZ2USbQoYcmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlGDEgAygLMjMucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuRm9yZWlnbk1lc3NhZ2VQcm90bzJSFnJlcGVhdGVkRm9yZWlnbk1lc3NhZ2USbgoUcmVwZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bVIScmVwZWF0ZWROZXN0ZWRFbnVtEmQKFXJlcGVhdGVkX2ZvcmVpZ25fZW51bRg0IAMoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yUhNyZXBlYXRlZEZvcmVpZ25FbnVtEjYKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2IAMoCUICCAJSE3JlcGVhdGVkU3RyaW5nUGllY2USJwoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAFSDHJlcGVhdGVkQ29yZBIlCgxwYWNrZWRfaW50MzIYSyADKAVCAhABUgtwYWNrZWRJbnQzMhIlCgxwYWNrZWRfaW50NjQYTCADKANCAhABUgtwYWNrZWRJbnQ2NBInCg1wYWNrZWRfdWludDMyGE0gAygNQgIQAVIMcGFja2VkVWludDMyEicKDXBhY2tlZF91aW50NjQYTiADKARCAhABUgxwYWNrZWRVaW50NjQSJwoNcGFja2VkX3NpbnQzMhhPIAMoEUICEAFSDHBhY2tlZFNpbnQzMhInCg1wYWNrZWRfc2ludDY0GFAgAygSQgIQAVIMcGFja2VkU2ludDY0EikKDnBhY2tlZF9maXhlZDMyGFEgAygHQgIQAVINcGFja2VkRml4ZWQzMhIpCg5wYWNrZWRfZml4ZWQ2NBhSIAMoBkICEAFSDXBhY2tlZEZpeGVkNjQSKwoPcGFja2VkX3NmaXhlZDMyGFMgAygPQgIQAVIOcGFja2VkU2ZpeGVkMzISKwoPcGFja2VkX3NmaXhlZDY0GFQgAygQQgIQAVIOcGFja2VkU2ZpeGVkNjQSJQoMcGFja2VkX2Zsb2F0GFUgAygCQgIQAVILcGFja2VkRmxvYXQSJwoNcGFja2VkX2RvdWJsZRhWIAMoAUICEAFSDHBhY2tlZERvdWJsZRIjCgtwYWNrZWRfYm9vbBhXIAMoCEICEAFSCnBhY2tlZEJvb2wSbgoScGFja2VkX25lc3RlZF9lbnVtGFggAygOMjwucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk5lc3RlZEVudW1CAhABUhBwYWNrZWROZXN0ZWRFbnVtEikKDnVucGFja2VkX2ludDMyGFkgAygFQgIQAFINdW5wYWNrZWRJbnQzMhIpCg51bnBhY2tlZF9pbnQ2NBhaIAMoA0ICEABSDXVucGFja2VkSW50NjQSKwoPdW5wYWNrZWRfdWludDMyGFsgAygNQgIQAFIOdW5wYWNrZWRVaW50MzISKwoPdW5wYWNrZWRfdWludDY0GFwgAygEQgIQAFIOdW5wYWNrZWRVaW50NjQSKwoPdW5wYWNrZWRfc2ludDMyGF0gAygRQgIQAFIOdW5wYWNrZWRTaW50MzISKwoPdW5wYWNrZWRfc2ludDY0GF4gAygSQgIQAFIOdW5wYWNrZWRTaW50NjQSLQoQdW5wYWNrZWRfZml4ZWQzMhhfIAMoB0ICEABSD3VucGFja2VkRml4ZWQzMhItChB1bnBhY2tlZF9maXhlZDY0GGAgAygGQgIQAFIPdW5wYWNrZWRGaXhlZDY0Ei8KEXVucGFja2VkX3NmaXhlZDMyGGEgAygPQgIQAFIQdW5wYWNrZWRTZml4ZWQzMhIvChF1bnBhY2tlZF9zZml4ZWQ2NBhiIAMoEEICEABSEHVucGFja2VkU2ZpeGVkNjQSKQoOdW5wYWNrZWRfZmxvYXQYYyADKAJCAhAAUg11bnBhY2tlZEZsb2F0EisKD3VucGFja2VkX2RvdWJsZRhkIAMoAUICEABSDnVucGFja2VkRG91YmxlEicKDXVucGFja2VkX2Jvb2wYZSADKAhCAhAAUgx1bnBhY2tlZEJvb2wScgoUdW5wYWNrZWRfbmVzdGVkX2VudW0YZiADKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bUICEABSEnVucGFja2VkTmVzdGVkRW51bRJsCg9tYXBfaW50MzJfaW50MzIYOCADKAsyRC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwSW50MzJJbnQzMkVudHJ5Ug1tYXBJbnQzMkludDMyEmwKD21hcF9pbnQ2NF9pbnQ2NBg5IAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQ2NEludDY0RW50cnlSDW1hcEludDY0SW50NjQScgoRbWFwX3VpbnQzMl91aW50MzIYOiADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwVWludDMyVWludDMyRW50cnlSD21hcFVpbnQzMlVpbnQzMhJyChFtYXBfdWludDY0X3VpbnQ2NBg7IAMoCzJGLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBVaW50NjRVaW50NjRFbnRyeVIPbWFwVWludDY0VWludDY0EnIKEW1hcF9zaW50MzJfc2ludDMyGDwgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFNpbnQzMlNpbnQzMkVudHJ5Ug9tYXBTaW50MzJTaW50MzIScgoRbWFwX3NpbnQ2NF9zaW50NjQYPSADKAsyRi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ludDY0U2ludDY0RW50cnlSD21hcFNpbnQ2NFNpbnQ2NBJ4ChNtYXBfZml4ZWQzMl9maXhlZDMyGD4gAygLMkgucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEZpeGVkMzJGaXhlZDMyRW50cnlSEW1hcEZpeGVkMzJGaXhlZDMyEngKE21hcF9maXhlZDY0X2ZpeGVkNjQYPyADKAsySC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeVIRbWFwRml4ZWQ2NEZpeGVkNjQSfgoVbWFwX3NmaXhlZDMyX3NmaXhlZDMyGEAgAygLMkoucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeVITbWFwU2ZpeGVkMzJTZml4ZWQzMhJ+ChVtYXBfc2ZpeGVkNjRfc2ZpeGVkNjQYQSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU2ZpeGVkNjRTZml4ZWQ2NEVudHJ5UhNtYXBTZml4ZWQ2NFNmaXhlZDY0EmwKD21hcF9pbnQzMl9mbG9hdBhCIAMoCzJELnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQzMkZsb2F0RW50cnlSDW1hcEludDMyRmxvYXQSbwoQbWFwX2ludDMyX2RvdWJsZRhDIAMoCzJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBJbnQzMkRvdWJsZUVudHJ5Ug5tYXBJbnQzMkRvdWJsZRJmCg1tYXBfYm9vbF9ib29sGEQgAygLMkIucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcEJvb2xCb29sRW50cnlSC21hcEJvb2xCb29sEnIKEW1hcF9zdHJpbmdfc3RyaW5nGEUgAygLMkYucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ1N0cmluZ0VudHJ5Ug9tYXBTdHJpbmdTdHJpbmcSbwoQbWFwX3N0cmluZ19ieXRlcxhGIAMoCzJFLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdCeXRlc0VudHJ5Ug5tYXBTdHJpbmdCeXRlcxKIAQoZbWFwX3N0cmluZ19uZXN0ZWRfbWVzc2FnZRhHIAMoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdOZXN0ZWRNZXNzYWdlRW50cnlSFm1hcFN0cmluZ05lc3RlZE1lc3NhZ2USiwEKGm1hcF9zdHJpbmdfZm9yZWlnbl9tZXNzYWdlGEggAygLMk4ucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yLk1hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlRW50cnlSF21hcFN0cmluZ0ZvcmVpZ25NZXNzYWdlEn8KFm1hcF9zdHJpbmdfbmVzdGVkX2VudW0YSSADKAsySi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWFwU3RyaW5nTmVzdGVkRW51bUVudHJ5UhNtYXBTdHJpbmdOZXN0ZWRFbnVtEoIBChdtYXBfc3RyaW5nX2ZvcmVpZ25fZW51bRhKIAMoCzJLLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NYXBTdHJpbmdGb3JlaWduRW51bUVudHJ5UhRtYXBTdHJpbmdGb3JlaWduRW51bRIjCgxvbmVvZl91aW50MzIYbyABKA1IAFILb25lb2ZVaW50MzIScwoUb25lb2ZfbmVzdGVkX21lc3NhZ2UYcCABKAsyPy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZUgAUhJvbmVvZk5lc3RlZE1lc3NhZ2USIwoMb25lb2Zfc3RyaW5nGHEgASgJSABSC29uZW9mU3RyaW5nEiEKC29uZW9mX2J5dGVzGHIgASgMSABSCm9uZW9mQnl0ZXMSHwoKb25lb2ZfYm9vbBhzIAEoCEgAUglvbmVvZkJvb2wSIwoMb25lb2ZfdWludDY0GHQgASgESABSC29uZW9mVWludDY0EiEKC29uZW9mX2Zsb2F0GHUgASgCSABSCm9uZW9mRmxvYXQSIwoMb25lb2ZfZG91YmxlGHYgASgBSABSC29uZW9mRG91YmxlEl0KCm9uZW9mX2VudW0YdyABKA4yPC5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTmVzdGVkRW51bUgAUglvbmVvZkVudW0SSwoEZGF0YRjJASABKAoyNi5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuRGF0YVIEZGF0YRIwCg1kZWZhdWx0X2ludDMyGPEBIAEoBToKLTEyMzQ1Njc4OVIMZGVmYXVsdEludDMyEjoKDWRlZmF1bHRfaW50NjQY8gEgASgDOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4OVIMZGVmYXVsdEludDY0EjIKDmRlZmF1bHRfdWludDMyGPMBIAEoDToKMjEyMzQ1Njc4OVINZGVmYXVsdFVpbnQzMhI8Cg5kZWZhdWx0X3VpbnQ2NBj0ASABKAQ6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5Ug1kZWZhdWx0VWludDY0EjIKDmRlZmF1bHRfc2ludDMyGPUBIAEoEToKLTEyMzQ1Njc4OVINZGVmYXVsdFNpbnQzMhI8Cg5kZWZhdWx0X3NpbnQ2NBj2ASABKBI6FC05MTIzNDU2Nzg5MTIzNDU2Nzg5Ug1kZWZhdWx0U2ludDY0EjQKD2RlZmF1bHRfZml4ZWQzMhj3ASABKAc6CjIxMjM0NTY3ODlSDmRlZmF1bHRGaXhlZDMyEj4KD2RlZmF1bHRfZml4ZWQ2NBj4ASABKAY6FDEwMTIzNDU2Nzg5MTIzNDU2Nzg5Ug5kZWZhdWx0Rml4ZWQ2NBI2ChBkZWZhdWx0X3NmaXhlZDMyGPkBIAEoDzoKLTEyMzQ1Njc4OVIPZGVmYXVsdFNmaXhlZDMyEkAKEGRlZmF1bHRfc2ZpeGVkNjQY+gEgASgQOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4OVIPZGVmYXVsdFNmaXhlZDY0EisKDWRlZmF1bHRfZmxvYXQY+wEgASgCOgU5ZSswOVIMZGVmYXVsdEZsb2F0Ei0KDmRlZmF1bHRfZG91YmxlGPwBIAEoAToFN2UrMjJSDWRlZmF1bHREb3VibGUSKAoMZGVmYXVsdF9ib29sGP0BIAEoCDoEdHJ1ZVILZGVmYXVsdEJvb2wSLwoOZGVmYXVsdF9zdHJpbmcY/gEgASgJOgdSb3NlYnVkUg1kZWZhdWx0U3RyaW5nEiwKDWRlZmF1bHRfYnl0ZXMY/wEgASgMOgZqb3NodWFSDGRlZmF1bHRCeXRlcxIfCgpmaWVsZG5hbWUxGJEDIAEoBVIKZmllbGRuYW1lMRIgCgtmaWVsZF9uYW1lMhiSAyABKAVSCmZpZWxkTmFtZTISIQoMX2ZpZWxkX25hbWUzGJMDIAEoBVIKRmllbGROYW1lMxIiCg1maWVsZF9fbmFtZTRfGJQDIAEoBVIKZmllbGROYW1lNBIhCgtmaWVsZDBuYW1lNRiVAyABKAVSC2ZpZWxkMG5hbWU1EiMKDWZpZWxkXzBfbmFtZTYYlgMgASgFUgtmaWVsZDBOYW1lNhIfCgpmaWVsZE5hbWU3GJcDIAEoBVIKZmllbGROYW1lNxIfCgpGaWVsZE5hbWU4GJgDIAEoBVIKRmllbGROYW1lOBIgCgtmaWVsZF9OYW1lORiZAyABKAVSCmZpZWxkTmFtZTkSIgoMRmllbGRfTmFtZTEwGJoDIAEoBVILRmllbGROYW1lMTASIgoMRklFTERfTkFNRTExGJsDIAEoBVILRklFTEROQU1FMTESIgoMRklFTERfbmFtZTEyGJwDIAEoBVILRklFTEROYW1lMTISJAoOX19maWVsZF9uYW1lMTMYnQMgASgFUgtGaWVsZE5hbWUxMxIkCg5fX0ZpZWxkX25hbWUxNBieAyABKAVSC0ZpZWxkTmFtZTE0EiMKDWZpZWxkX19uYW1lMTUYnwMgASgFUgtmaWVsZE5hbWUxNRIjCg1maWVsZF9fTmFtZTE2GKADIAEoBVILZmllbGROYW1lMTYSJAoOZmllbGRfbmFtZTE3X18YoQMgASgFUgtmaWVsZE5hbWUxNxIkCg5GaWVsZF9uYW1lMThfXxiiAyABKAVSC0ZpZWxkTmFtZTE4GnIKDU5lc3RlZE1lc3NhZ2USDAoBYRgBIAEoBVIBYRJTCgtjb3JlY3Vyc2l2ZRgCIAEoCzIxLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMlILY29yZWN1cnNpdmUaQAoSTWFwSW50MzJJbnQzMkVudHJ5EhAKA2tleRgBIAEoBVIDa2V5EhQKBXZhbHVlGAIgASgFUgV2YWx1ZToCOAEaQAoSTWFwSW50NjRJbnQ2NEVudHJ5EhAKA2tleRgBIAEoA1IDa2V5EhQKBXZhbHVlGAIgASgDUgV2YWx1ZToCOAEaQgoUTWFwVWludDMyVWludDMyRW50cnkSEAoDa2V5GAEgASgNUgNrZXkSFAoFdmFsdWUYAiABKA1SBXZhbHVlOgI4ARpCChRNYXBVaW50NjRVaW50NjRFbnRyeRIQCgNrZXkYASABKARSA2tleRIUCgV2YWx1ZRgCIAEoBFIFdmFsdWU6AjgBGkIKFE1hcFNpbnQzMlNpbnQzMkVudHJ5EhAKA2tleRgBIAEoEVIDa2V5EhQKBXZhbHVlGAIgASgRUgV2YWx1ZToCOAEaQgoUTWFwU2ludDY0U2ludDY0RW50cnkSEAoDa2V5GAEgASgSUgNrZXkSFAoFdmFsdWUYAiABKBJSBXZhbHVlOgI4ARpEChZNYXBGaXhlZDMyRml4ZWQzMkVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaRAoWTWFwRml4ZWQ2NEZpeGVkNjRFbnRyeRIQCgNrZXkYASABKAZSA2tleRIUCgV2YWx1ZRgCIAEoBlIFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDMyU2ZpeGVkMzJFbnRyeRIQCgNrZXkYASABKA9SA2tleRIUCgV2YWx1ZRgCIAEoD1IFdmFsdWU6AjgBGkYKGE1hcFNmaXhlZDY0U2ZpeGVkNjRFbnRyeRIQCgNrZXkYASABKBBSA2tleRIUCgV2YWx1ZRgCIAEoEFIFdmFsdWU6AjgBGkAKEk1hcEludDMyRmxvYXRFbnRyeRIQCgNrZXkYASABKAVSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBGkEKE01hcEludDMyRG91YmxlRW50cnkSEAoDa2V5GAEgASgFUgNrZXkSFAoFdmFsdWUYAiABKAFSBXZhbHVlOgI4ARo+ChBNYXBCb29sQm9vbEVudHJ5EhAKA2tleRgBIAEoCFIDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEaQgoUTWFwU3RyaW5nU3RyaW5nRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ARpBChNNYXBTdHJpbmdCeXRlc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgMUgV2YWx1ZToCOAEaigEKG01hcFN0cmluZ05lc3RlZE1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAlSA2tleRJVCgV2YWx1ZRgCIAEoCzI/LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRNZXNzYWdlUgV2YWx1ZToCOAEafwocTWFwU3RyaW5nRm9yZWlnbk1lc3NhZ2VFbnRyeRIQCgNrZXkYASABKAlSA2tleRJJCgV2YWx1ZRgCIAEoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yUgV2YWx1ZToCOAEahAEKGE1hcFN0cmluZ05lc3RlZEVudW1FbnRyeRIQCgNrZXkYASABKAlSA2tleRJSCgV2YWx1ZRgCIAEoDjI8LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5OZXN0ZWRFbnVtUgV2YWx1ZToCOAEaeQoZTWFwU3RyaW5nRm9yZWlnbkVudW1FbnRyeRIQCgNrZXkYASABKAlSA2tleRJGCgV2YWx1ZRgCIAEoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yUgV2YWx1ZToCOAEaTAoERGF0YRIgCgtncm91cF9pbnQzMhjKASABKAVSCmdyb3VwSW50MzISIgoMZ3JvdXBfdWludDMyGMsBIAEoDVILZ3JvdXBVaW50MzIaIQoRTWVzc2FnZVNldENvcnJlY3QqCAgEEP////8HOgIIARr6AQobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24xEhAKA3N0chgZIAEoCVIDc3RyMsgBChVtZXNzYWdlX3NldF9leHRlbnNpb24SQy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3QY+bteIAEoCzJNLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxUeXBlc1Byb3RvMi5NZXNzYWdlU2V0Q29ycmVjdEV4dGVuc2lvbjFSE21lc3NhZ2VTZXRFeHRlbnNpb24a9wEKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMhIMCgFpGAkgASgFUgFpMskBChVtZXNzYWdlX3NldF9leHRlbnNpb24SQy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3QYkLP8ASABKAsyTS5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5UZXN0QWxsVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24yUhNtZXNzYWdlU2V0RXh0ZW5zaW9uIjkKCk5lc3RlZEVudW0SBwoDRk9PEAASBwoDQkFSEAESBwoDQkFaEAISEAoDTkVHEP///////////wEqBQh4EMkBQg0KC29uZW9mX2ZpZWxkSgYI6AcQkE4iJAoURm9yZWlnbk1lc3NhZ2VQcm90bzISDAoBYxgBIAEoBVIBYyKeAwoVVW5rbm93blRvVGVzdEFsbFR5cGVzEiYKDm9wdGlvbmFsX2ludDMyGOkHIAEoBVINb3B0aW9uYWxJbnQzMhIoCg9vcHRpb25hbF9zdHJpbmcY6gcgASgJUg5vcHRpb25hbFN0cmluZxJbCg5uZXN0ZWRfbWVzc2FnZRjrByABKAsyMy5wcm90b2J1Zl90ZXN0X21lc3NhZ2VzLnByb3RvMi5Gb3JlaWduTWVzc2FnZVByb3RvMlINbmVzdGVkTWVzc2FnZRJpCg1vcHRpb25hbGdyb3VwGOwHIAEoCjJCLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlVua25vd25Ub1Rlc3RBbGxUeXBlcy5PcHRpb25hbEdyb3VwUg1vcHRpb25hbGdyb3VwEiQKDW9wdGlvbmFsX2Jvb2wY7gcgASgIUgxvcHRpb25hbEJvb2wSJgoOcmVwZWF0ZWRfaW50MzIY8wcgAygFUg1yZXBlYXRlZEludDMyGh0KDU9wdGlvbmFsR3JvdXASDAoBYRgBIAEoBVIBYSIWChROdWxsSHlwb3RoZXNpc1Byb3RvMiIvCg5FbnVtT25seVByb3RvMiIdCgRCb29sEgoKBmtGYWxzZRAAEgkKBWtUcnVlEAEiJQoPT25lU3RyaW5nUHJvdG8yEhIKBGRhdGEYASABKAlSBGRhdGEiYQoRUHJvdG9XaXRoS2V5d29yZHMSFgoGaW5saW5lGAEgASgFUgZpbmxpbmUSGAoHY29uY2VwdBgCIAEoCVIHY29uY2VwdBIaCghyZXF1aXJlcxgDIAMoCVIIcmVxdWlyZXMizBkKGlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yEiUKDnJlcXVpcmVkX2ludDMyGAEgAigFUg1yZXF1aXJlZEludDMyEiUKDnJlcXVpcmVkX2ludDY0GAIgAigDUg1yZXF1aXJlZEludDY0EicKD3JlcXVpcmVkX3VpbnQzMhgDIAIoDVIOcmVxdWlyZWRVaW50MzISJwoPcmVxdWlyZWRfdWludDY0GAQgAigEUg5yZXF1aXJlZFVpbnQ2NBInCg9yZXF1aXJlZF9zaW50MzIYBSACKBFSDnJlcXVpcmVkU2ludDMyEicKD3JlcXVpcmVkX3NpbnQ2NBgGIAIoElIOcmVxdWlyZWRTaW50NjQSKQoQcmVxdWlyZWRfZml4ZWQzMhgHIAIoB1IPcmVxdWlyZWRGaXhlZDMyEikKEHJlcXVpcmVkX2ZpeGVkNjQYCCACKAZSD3JlcXVpcmVkRml4ZWQ2NBIrChFyZXF1aXJlZF9zZml4ZWQzMhgJIAIoD1IQcmVxdWlyZWRTZml4ZWQzMhIrChFyZXF1aXJlZF9zZml4ZWQ2NBgKIAIoEFIQcmVxdWlyZWRTZml4ZWQ2NBIlCg5yZXF1aXJlZF9mbG9hdBgLIAIoAlINcmVxdWlyZWRGbG9hdBInCg9yZXF1aXJlZF9kb3VibGUYDCACKAFSDnJlcXVpcmVkRG91YmxlEiMKDXJlcXVpcmVkX2Jvb2wYDSACKAhSDHJlcXVpcmVkQm9vbBInCg9yZXF1aXJlZF9zdHJpbmcYDiACKAlSDnJlcXVpcmVkU3RyaW5nEiUKDnJlcXVpcmVkX2J5dGVzGA8gAigMUg1yZXF1aXJlZEJ5dGVzEn8KF3JlcXVpcmVkX25lc3RlZF9tZXNzYWdlGBIgAigLMkcucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTmVzdGVkTWVzc2FnZVIVcmVxdWlyZWROZXN0ZWRNZXNzYWdlEm0KGHJlcXVpcmVkX2ZvcmVpZ25fbWVzc2FnZRgTIAIoCzIzLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25NZXNzYWdlUHJvdG8yUhZyZXF1aXJlZEZvcmVpZ25NZXNzYWdlEnYKFHJlcXVpcmVkX25lc3RlZF9lbnVtGBUgAigOMkQucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTmVzdGVkRW51bVIScmVxdWlyZWROZXN0ZWRFbnVtEmQKFXJlcXVpcmVkX2ZvcmVpZ25fZW51bRgWIAIoDjIwLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLkZvcmVpZ25FbnVtUHJvdG8yUhNyZXF1aXJlZEZvcmVpZ25FbnVtEjYKFXJlcXVpcmVkX3N0cmluZ19waWVjZRgYIAIoCUICCAJSE3JlcXVpcmVkU3RyaW5nUGllY2USJwoNcmVxdWlyZWRfY29yZBgZIAIoCUICCAFSDHJlcXVpcmVkQ29yZBJmChFyZWN1cnNpdmVfbWVzc2FnZRgbIAIoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yUhByZWN1cnNpdmVNZXNzYWdlEncKGm9wdGlvbmFsX3JlY3Vyc2l2ZV9tZXNzYWdlGBwgASgLMjkucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzJSGG9wdGlvbmFsUmVjdXJzaXZlTWVzc2FnZRJTCgRkYXRhGMkBIAIoCjI+LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLkRhdGFSBGRhdGESMAoNZGVmYXVsdF9pbnQzMhjxASACKAU6Ci0xMjM0NTY3ODlSDGRlZmF1bHRJbnQzMhI6Cg1kZWZhdWx0X2ludDY0GPIBIAIoAzoULTkxMjM0NTY3ODkxMjM0NTY3ODlSDGRlZmF1bHRJbnQ2NBIyCg5kZWZhdWx0X3VpbnQzMhjzASACKA06CjIxMjM0NTY3ODlSDWRlZmF1bHRVaW50MzISPAoOZGVmYXVsdF91aW50NjQY9AEgAigEOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4OVINZGVmYXVsdFVpbnQ2NBIyCg5kZWZhdWx0X3NpbnQzMhj1ASACKBE6Ci0xMjM0NTY3ODlSDWRlZmF1bHRTaW50MzISPAoOZGVmYXVsdF9zaW50NjQY9gEgAigSOhQtOTEyMzQ1Njc4OTEyMzQ1Njc4OVINZGVmYXVsdFNpbnQ2NBI0Cg9kZWZhdWx0X2ZpeGVkMzIY9wEgAigHOgoyMTIzNDU2Nzg5Ug5kZWZhdWx0Rml4ZWQzMhI+Cg9kZWZhdWx0X2ZpeGVkNjQY+AEgAigGOhQxMDEyMzQ1Njc4OTEyMzQ1Njc4OVIOZGVmYXVsdEZpeGVkNjQSNgoQZGVmYXVsdF9zZml4ZWQzMhj5ASACKA86Ci0xMjM0NTY3ODlSD2RlZmF1bHRTZml4ZWQzMhJAChBkZWZhdWx0X3NmaXhlZDY0GPoBIAIoEDoULTkxMjM0NTY3ODkxMjM0NTY3ODlSD2RlZmF1bHRTZml4ZWQ2NBIrCg1kZWZhdWx0X2Zsb2F0GPsBIAIoAjoFOWUrMDlSDGRlZmF1bHRGbG9hdBItCg5kZWZhdWx0X2RvdWJsZRj8ASACKAE6BTdlKzIyUg1kZWZhdWx0RG91YmxlEigKDGRlZmF1bHRfYm9vbBj9ASACKAg6BHRydWVSC2RlZmF1bHRCb29sEi8KDmRlZmF1bHRfc3RyaW5nGP4BIAIoCToHUm9zZWJ1ZFINZGVmYXVsdFN0cmluZxIsCg1kZWZhdWx0X2J5dGVzGP8BIAIoDDoGam9zaHVhUgxkZWZhdWx0Qnl0ZXMa6AEKDU5lc3RlZE1lc3NhZ2USDAoBYRgBIAIoBVIBYRJbCgtjb3JlY3Vyc2l2ZRgCIAIoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yUgtjb3JlY3Vyc2l2ZRJsChRvcHRpb25hbF9jb3JlY3Vyc2l2ZRgDIAEoCzI5LnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yUhNvcHRpb25hbENvcmVjdXJzaXZlGkwKBERhdGESIAoLZ3JvdXBfaW50MzIYygEgAigFUgpncm91cEludDMyEiIKDGdyb3VwX3VpbnQzMhjLASACKA1SC2dyb3VwVWludDMyGiEKEU1lc3NhZ2VTZXRDb3JyZWN0KggIBBD/////BzoCCAEaigIKG01lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMRIQCgNzdHIYGSACKAlSA3N0cjLYAQoVbWVzc2FnZV9zZXRfZXh0ZW5zaW9uEksucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3QY+bteIAEoCzJVLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0RXh0ZW5zaW9uMVITbWVzc2FnZVNldEV4dGVuc2lvbhqHAgobTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24yEgwKAWkYCSACKAVSAWky2QEKFW1lc3NhZ2Vfc2V0X2V4dGVuc2lvbhJLLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8yLlRlc3RBbGxSZXF1aXJlZFR5cGVzUHJvdG8yLk1lc3NhZ2VTZXRDb3JyZWN0GJCz/AEgASgLMlUucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFJlcXVpcmVkVHlwZXNQcm90bzIuTWVzc2FnZVNldENvcnJlY3RFeHRlbnNpb24yUhNtZXNzYWdlU2V0RXh0ZW5zaW9uIjkKCk5lc3RlZEVudW0SBwoDRk9PEAASBwoDQkFSEAESBwoDQkFaEAISEAoDTkVHEP///////////wEqBQh4EMkBSgYI6AcQkE4qRgoRRm9yZWlnbkVudW1Qcm90bzISDwoLRk9SRUlHTl9GT08QABIPCgtGT1JFSUdOX0JBUhABEg8KC0ZPUkVJR05fQkFaEAI6WgoPZXh0ZW5zaW9uX2ludDMyEjEucHJvdG9idWZfdGVzdF9tZXNzYWdlcy5wcm90bzIuVGVzdEFsbFR5cGVzUHJvdG8yGHggASgFUg5leHRlbnNpb25JbnQzMkI4Cihjb20uZ29vZ2xlLnByb3RvYnVmX3Rlc3RfbWVzc2FnZXMucHJvdG8ySAH4AQGiAgZQcm90bzJKnqQBCgcSBSUAjAMBCroNCgEMEgMlABIymQ0gUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMg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bmFsU2ludDMyiAEBEiwKD29wdGlvbmFsX3NpbnQ2NBgGIAEoEkgFUg5vcHRpb25hbFNpbnQ2NIgBARIuChBvcHRpb25hbF9maXhlZDMyGAcgASgHSAZSD29wdGlvbmFsRml4ZWQzMogBARIuChBvcHRpb25hbF9maXhlZDY0GAggASgGSAdSD29wdGlvbmFsRml4ZWQ2NIgBARIwChFvcHRpb25hbF9zZml4ZWQzMhgJIAEoD0gIUhBvcHRpb25hbFNmaXhlZDMyiAEBEjAKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQSAlSEG9wdGlvbmFsU2ZpeGVkNjSIAQESKgoOb3B0aW9uYWxfZmxvYXQYCyABKAJIClINb3B0aW9uYWxGbG9hdIgBARIsCg9vcHRpb25hbF9kb3VibGUYDCABKAFIC1IOb3B0aW9uYWxEb3VibGWIAQESKAoNb3B0aW9uYWxfYm9vbBgNIAEoCEgMUgxvcHRpb25hbEJvb2yIAQESLAoPb3B0aW9uYWxfc3RyaW5nGA4gASgJSA1SDm9wdGlvbmFsU3RyaW5niAEBEioKDm9wdGlvbmFsX2J5dGVzGA8gASgMSA5SDW9wdGlvbmFsQnl0ZXOIAQESLAoNb3B0aW9uYWxfY29yZBgQIAEoCUICCAFID1IMb3B0aW9uYWxDb3JkiAEBEnAKF29wdGlvbmFsX25lc3RlZF9tZXNzYWdlGBIgASgLMjMucHJvdG9idWZfdW5pdHRlc3QuVGVzdFByb3RvM09wdGlvbmFsLk5lc3RlZE1lc3NhZ2VIEFIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdliAEBEmwKE2xhenlfbmVzdGVkX21lc3NhZ2UYEyABKAsyMy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWwuTmVzdGVkTWVzc2FnZUICKAFIEVIRbGF6eU5lc3RlZE1lc3NhZ2WIAQESZwoUb3B0aW9uYWxfbmVzdGVkX2VudW0YFSABKA4yMC5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWwuTmVzdGVkRW51bUgSUhJvcHRpb25hbE5lc3RlZEVudW2IAQESJQoOc2luZ3VsYXJfaW50MzIYFiABKAVSDXNpbmd1bGFySW50MzISJQoOc2luZ3VsYXJfaW50NjQYFyABKANSDXNpbmd1bGFySW50NjQaKwoNTmVzdGVkTWVzc2FnZRITCgJiYhgBIAEoBUgAUgJiYogBAUIFCgNfYmIiSgoKTmVzdGVkRW51bRIPCgtVTlNQRUNJRklFRBAAEgcKA0ZPTxABEgcKA0JBUhACEgcKA0JBWhADEhAKA05FRxD///////////8BQhEKD19vcHRpb25hbF9pbnQzMkIRCg9fb3B0aW9uYWxfaW50NjRCEgoQX29wdGlvbmFsX3VpbnQzMkISChBfb3B0aW9uYWxfdWludDY0QhIKEF9vcHRpb25hbF9zaW50MzJCEgoQX29wdGlvbmFsX3NpbnQ2NEITChFfb3B0aW9uYWxfZml4ZWQzMkITChFfb3B0aW9uYWxfZml4ZWQ2NEIUChJfb3B0aW9uYWxfc2ZpeGVkMzJCFAoSX29wdGlvbmFsX3NmaXhlZDY0QhEKD19vcHRpb25hbF9mbG9hdEISChBfb3B0aW9uYWxfZG91YmxlQhAKDl9vcHRpb25hbF9ib29sQhIKEF9vcHRpb25hbF9zdHJpbmdCEQoPX29wdGlvbmFsX2J5dGVzQhAKDl9vcHRpb25hbF9jb3JkQhoKGF9vcHRpb25hbF9uZXN0ZWRfbWVzc2FnZUIWChRfbGF6eV9uZXN0ZWRfbWVzc2FnZUIXChVfb3B0aW9uYWxfbmVzdGVkX2VudW0isgIKGVRlc3RQcm90bzNPcHRpb25hbE1lc3NhZ2USYQoObmVzdGVkX21lc3NhZ2UYASABKAsyOi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWxNZXNzYWdlLk5lc3RlZE1lc3NhZ2VSDW5lc3RlZE1lc3NhZ2USdwoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYAiABKAsyOi5wcm90b2J1Zl91bml0dGVzdC5UZXN0UHJvdG8zT3B0aW9uYWxNZXNzYWdlLk5lc3RlZE1lc3NhZ2VIAFIVb3B0aW9uYWxOZXN0ZWRNZXNzYWdliAEBGh0KDU5lc3RlZE1lc3NhZ2USDAoBcxgBIAEoCVIBc0IaChhfb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UiyQEKGFByb3RvM09wdGlvbmFsRXh0ZW5zaW9uczJLCg9leHRfbm9fb3B0aW9uYWwSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYiM3ZqQEgASgFUg1leHROb09wdGlvbmFsMlIKEWV4dF93aXRoX29wdGlvbmFsEh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGInN2akBIAEoBVIPZXh0V2l0aE9wdGlvbmFsiAEBOgzA6MzNCgjI6MzNChBCOAohY29tLmdvb2dsZS5wcm90b2J1Zi50ZXN0aW5nLnByb3RvUAGqAhBQcm90b2J1ZlVuaXR0ZXN0SpsiCgYSBB4AZAEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB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