CuEsChlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiNgoDQW55EhkKCHR5cGVfdXJsGAEgASgJUgd0eXBlVXJsEhQKBXZhbHVlGAIgASgMUgV2YWx1ZUJvChNjb20uZ29vZ2xlLnByb3RvYnVmQghBbnlQcm90b1ABWiVnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvYW55ogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSoErCgcSBR4AmgEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwA8CgkKAggLEgMjADwKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQApCgkKAggIEgMlACkKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEK5BAKAgQAEgV5AJoBARrWECBgQW55YCBjb250YWlucyBhbiBhcmJpdHJhcnkgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgbWVzc2FnZSBhbG9uZyB3aXRoIGEKIFVSTCB0aGF0IGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgc2VyaWFsaXplZCBtZXNzYWdlLgoKIFByb3RvYnVmIGxpYnJhcnkgcHJvdmlkZXMgc3VwcG9ydCB0byBwYWNrL3VucGFjayBBbnkgdmFsdWVzIGluIHRoZSBmb3JtCiBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBvciBhZGRpdGlvbmFsIGdlbmVyYXRlZCBtZXRob2RzIG9mIHRoZSBBbnkgdHlwZS4KCiBFeGFtcGxlIDE6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gQysrLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnk7CiAgICAgYW55LlBhY2tGcm9tKGZvbyk7CiAgICAgLi4uCiAgICAgaWYgKGFueS5VbnBhY2tUbygmZm9vKSkgewogICAgICAgLi4uCiAgICAgfQoKIEV4YW1wbGUgMjogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBKYXZhLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnkgPSBBbnkucGFjayhmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuaXMoRm9vLmNsYXNzKSkgewogICAgICAgZm9vID0gYW55LnVucGFjayhGb28uY2xhc3MpOwogICAgIH0KCiAgRXhhbXBsZSAzOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIFB5dGhvbi4KCiAgICAgZm9vID0gRm9vKC4uLikKICAgICBhbnkgPSBBbnkoKQogICAgIGFueS5QYWNrKGZvbykKICAgICAuLi4KICAgICBpZiBhbnkuSXMoRm9vLkRFU0NSSVBUT1IpOgogICAgICAgYW55LlVucGFjayhmb28pCiAgICAgICAuLi4KCiAgRXhhbXBsZSA0OiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEdvCgogICAgICBmb28gOj0gJnBiLkZvb3suLi59CiAgICAgIGFueSwgZXJyIDo9IHB0eXBlcy5NYXJzaGFsQW55KGZvbykKICAgICAgLi4uCiAgICAgIGZvbyA6PSAmcGIuRm9ve30KICAgICAgaWYgZXJyIDo9IHB0eXBlcy5Vbm1hcnNoYWxBbnkoYW55LCBmb28pOyBlcnIgIT0gbmlsIHsKICAgICAgICAuLi4KICAgICAgfQoKIFRoZSBwYWNrIG1ldGhvZHMgcHJvdmlkZWQgYnkgcHJvdG9idWYgbGlicmFyeSB3aWxsIGJ5IGRlZmF1bHQgdXNlCiAndHlwZS5nb29nbGVhcGlzLmNvbS9mdWxsLnR5cGUubmFtZScgYXMgdGhlIHR5cGUgVVJMIGFuZCB0aGUgdW5wYWNrCiBtZXRob2RzIG9ubHkgdXNlIHRoZSBmdWxseSBxdWFsaWZpZWQgdHlwZSBuYW1lIGFmdGVyIHRoZSBsYXN0ICcvJwogaW4gdGhlIHR5cGUgVVJMLCBmb3IgZXhhbXBsZSAiZm9vLmJhci5jb20veC95LnoiIHdpbGwgeWllbGQgdHlwZQogbmFtZSAieS56Ii4KCgogSlNPTgogPT09PQogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYW4gYEFueWAgdmFsdWUgdXNlcyB0aGUgcmVndWxhcgogcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlc2VyaWFsaXplZCwgZW1iZWRkZWQgbWVzc2FnZSwgd2l0aCBhbgogYWRkaXRpb25hbCBmaWVsZCBgQHR5cGVgIHdoaWNoIGNvbnRhaW5zIHRoZSB0eXBlIFVSTC4gRXhhbXBsZToKCiAgICAgcGFja2FnZSBnb29nbGUucHJvZmlsZTsKICAgICBtZXNzYWdlIFBlcnNvbiB7CiAgICAgICBzdHJpbmcgZmlyc3RfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgbGFzdF9uYW1lID0gMjsKICAgICB9CgogICAgIHsKICAgICAgICJAdHlwZSI6ICJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wcm9maWxlLlBlcnNvbiIsCiAgICAgICAiZmlyc3ROYW1lIjogPHN0cmluZz4sCiAgICAgICAibGFzdE5hbWUiOiA8c3RyaW5nPgogICAgIH0KCiBJZiB0aGUgZW1iZWRkZWQgbWVzc2FnZSB0eXBlIGlzIHdlbGwta25vd24gYW5kIGhhcyBhIGN1c3RvbSBKU09OCiByZXByZXNlbnRhdGlvbiwgdGhhdCByZXByZXNlbnRhdGlvbiB3aWxsIGJlIGVtYmVkZGVkIGFkZGluZyBhIGZpZWxkCiBgdmFsdWVgIHdoaWNoIGhvbGRzIHRoZSBjdXN0b20gSlNPTiBpbiBhZGRpdGlvbiB0byB0aGUgYEB0eXBlYAogZmllbGQuIEV4YW1wbGUgKGZvciBtZXNzYWdlIFtnb29nbGUucHJvdG9idWYuRHVyYXRpb25dW10pOgoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvdG9idWYuRHVyYXRpb24iLAogICAgICAgInZhbHVlIjogIjEuMjEycyIKICAgICB9CgoKCgoDBAABEgN5CAsK1woKBAQAAgASBJYBAhYayAogQSBVUkwvcmVzb3VyY2UgbmFtZSB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQKIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlLiBUaGlzIHN0cmluZyBtdXN0IGNvbnRhaW4gYXQgbGVhc3QKIG9uZSAiLyIgY2hhcmFjdGVyLiBUaGUgbGFzdCBzZWdtZW50IG9mIHRoZSBVUkwncyBwYXRoIG11c3QgcmVwcmVzZW50CiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHR5cGUgKGFzIGluCiBgcGF0aC9nb29nbGUucHJvdG9idWYuRHVyYXRpb25gKS4gVGhlIG5hbWUgc2hvdWxkIGJlIGluIGEgY2Fub25pY2FsIGZvcm0KIChlLmcuLCBsZWFkaW5nICIuIiBpcyBub3QgYWNjZXB0ZWQpLgoKIEluIHByYWN0aWNlLCB0ZWFtcyB1c3VhbGx5IHByZWNvbXBpbGUgaW50byB0aGUgYmluYXJ5IGFsbCB0eXBlcyB0aGF0IHRoZXkKIGV4cGVjdCBpdCB0byB1c2UgaW4gdGhlIGNvbnRleHQgb2YgQW55LiBIb3dldmVyLCBmb3IgVVJMcyB3aGljaCB1c2UgdGhlCiBzY2hlbWUgYGh0dHBgLCBgaHR0cHNgLCBvciBubyBzY2hlbWUsIG9uZSBjYW4gb3B0aW9uYWxseSBzZXQgdXAgYSB0eXBlCiBzZXJ2ZXIgdGhhdCBtYXBzIHR5cGUgVVJMcyB0byBtZXNzYWdlIGRlZmluaXRpb25zIGFzIGZvbGxvd3M6CgogKiBJZiBubyBzY2hlbWUgaXMgcHJvdmlkZWQsIGBodHRwc2AgaXMgYXNzdW1lZC4KICogQW4gSFRUUCBHRVQgb24gdGhlIFVSTCBtdXN0IHlpZWxkIGEgW2dvb2dsZS5wcm90b2J1Zi5UeXBlXVtdCiAgIHZhbHVlIGluIGJpbmFyeSBmb3JtYXQsIG9yIHByb2R1Y2UgYW4gZXJyb3IuCiAqIEFwcGxpY2F0aW9ucyBhcmUgYWxsb3dlZCB0byBjYWNoZSBsb29rdXAgcmVzdWx0cyBiYXNlZCBvbiB0aGUKICAgVVJMLCBvciBoYXZlIHRoZW0gcHJlY29tcGlsZWQgaW50byBhIGJpbmFyeSB0byBhdm9pZCBhbnkKICAgbG9va3VwLiBUaGVyZWZvcmUsIGJpbmFyeSBjb21wYXRpYmlsaXR5IG5lZWRzIHRvIGJlIHByZXNlcnZlZAogICBvbiBjaGFuZ2VzIHRvIHR5cGVzLiAoVXNlIHZlcnNpb25lZCB0eXBlIG5hbWVzIHRvIG1hbmFnZQogICBicmVha2luZyBjaGFuZ2VzLikKCiBOb3RlOiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGN1cnJlbnRseSBhdmFpbGFibGUgaW4gdGhlIG9mZmljaWFsCiBwcm90b2J1ZiByZWxlYXNlLCBhbmQgaXQgaXMgbm90IHVzZWQgZm9yIHR5cGUgVVJMcyBiZWdpbm5pbmcgd2l0aAogdHlwZS5nb29nbGVhcGlzLmNvbS4KCiBTY2hlbWVzIG90aGVyIHRoYW4gYGh0dHBgLCBgaHR0cHNgIChvciB0aGUgZW1wdHkgc2NoZW1lKSBtaWdodCBiZQogdXNlZCB3aXRoIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHNlbWFudGljcy4KCgoOCgUEAAIABBIFlgECeQ0KDQoFBAACAAUSBJYBAggKDQoFBAACAAESBJYBCREKDQoFBAACAAMSBJYBFBUKVwoEBAACARIEmQECEhpJIE11c3QgYmUgYSB2YWxpZCBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBvZiB0aGUgYWJvdmUgc3BlY2lmaWVkIHR5cGUuCgoPCgUEAAIBBBIGmQEClgEWCg0KBQQAAgEFEgSZAQIHCg0KBQQAAgEBEgSZAQgNCg0KBQQAAgEDEgSZARARYgZwcm90bzMKy/kCCiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIk0KEUZpbGVEZXNjcmlwdG9yU2V0EjgKBGZpbGUYASADKAsyJC5nb29nbGUucHJvdG9idWYuRmlsZURlc2NyaXB0b3JQcm90b1IEZmlsZSLkBAoTRmlsZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3BhY2thZ2UYAiABKAlSB3BhY2thZ2USHgoKZGVwZW5kZW5jeRgDIAMoCVIKZGVwZW5kZW5jeRIrChFwdWJsaWNfZGVwZW5kZW5jeRgKIAMoBVIQcHVibGljRGVwZW5kZW5jeRInCg93ZWFrX2RlcGVuZGVuY3kYCyADKAVSDndlYWtEZXBlbmRlbmN5EkMKDG1lc3NhZ2VfdHlwZRgEIAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG9SC21lc3NhZ2VUeXBlEkEKCWVudW1fdHlwZRgFIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvUghlbnVtVHlwZRJBCgdzZXJ2aWNlGAYgAygLMicuZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VEZXNjcmlwdG9yUHJvdG9SB3NlcnZpY2USQwoJZXh0ZW5zaW9uGAcgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUglleHRlbnNpb24SNgoHb3B0aW9ucxgIIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9uc1IHb3B0aW9ucxJJChBzb3VyY2VfY29kZV9pbmZvGAkgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvUg5zb3VyY2VDb2RlSW5mbxIWCgZzeW50YXgYDCABKAlSBnN5bnRheCK5BgoPRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSOwoFZmllbGQYAiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SBWZpZWxkEkMKCWV4dGVuc2lvbhgGIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEkEKC25lc3RlZF90eXBlGAMgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1IKbmVzdGVkVHlwZRJBCgllbnVtX3R5cGUYBCADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSWAoPZXh0ZW5zaW9uX3JhbmdlGAUgAygLMi8uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5FeHRlbnNpb25SYW5nZVIOZXh0ZW5zaW9uUmFuZ2USRAoKb25lb2ZfZGVjbBgIIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5PbmVvZkRlc2NyaXB0b3JQcm90b1IJb25lb2ZEZWNsEjkKB29wdGlvbnMYByABKAsyHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnNSB29wdGlvbnMSVQoOcmVzZXJ2ZWRfcmFuZ2UYCSADKAsyLi5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgKIAMoCVIMcmVzZXJ2ZWROYW1lGnoKDkV4dGVuc2lvblJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZBJACgdvcHRpb25zGAMgASgLMiYuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9uc1IHb3B0aW9ucxo3Cg1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCJ8ChVFeHRlbnNpb25SYW5nZU9wdGlvbnMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKYBgoURmllbGREZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAyABKAVSBm51bWJlchJBCgVsYWJlbBgEIAEoDjIrLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5MYWJlbFIFbGFiZWwSPgoEdHlwZRgFIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlUgR0eXBlEhsKCXR5cGVfbmFtZRgGIAEoCVIIdHlwZU5hbWUSGgoIZXh0ZW5kZWUYAiABKAlSCGV4dGVuZGVlEiMKDWRlZmF1bHRfdmFsdWUYByABKAlSDGRlZmF1bHRWYWx1ZRIfCgtvbmVvZl9pbmRleBgJIAEoBVIKb25lb2ZJbmRleBIbCglqc29uX25hbWUYCiABKAlSCGpzb25OYW1lEjcKB29wdGlvbnMYCCABKAsyHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zUgdvcHRpb25zIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxBQkVMX1JFUVVJUkVEEAISEgoOTEFCRUxfUkVQRUFURUQQAyJjChRPbmVvZkRlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjcKB29wdGlvbnMYAiABKAsyHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zUgdvcHRpb25zIuMCChNFbnVtRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPwoFdmFsdWUYAiADKAsyKS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvUgV2YWx1ZRI2CgdvcHRpb25zGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zUgdvcHRpb25zEl0KDnJlc2VydmVkX3JhbmdlGAQgAygLMjYuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG8uRW51bVJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgFIAMoCVIMcmVzZXJ2ZWROYW1lGjsKEUVudW1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCKDAQoYRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAIgASgFUgZudW1iZXISOwoHb3B0aW9ucxgDIAEoCzIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zUgdvcHRpb25zIqcBChZTZXJ2aWNlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPgoGbWV0aG9kGAIgAygLMiYuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZERlc2NyaXB0b3JQcm90b1IGbWV0aG9kEjkKB29wdGlvbnMYAyABKAsyHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnNSB29wdGlvbnMiiQIKFU1ldGhvZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEh0KCmlucHV0X3R5cGUYAiABKAlSCWlucHV0VHlwZRIfCgtvdXRwdXRfdHlwZRgDIAEoCVIKb3V0cHV0VHlwZRI4CgdvcHRpb25zGAQgASgLMh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnNSB29wdGlvbnMSMAoQY2xpZW50X3N0cmVhbWluZxgFIAEoCDoFZmFsc2VSD2NsaWVudFN0cmVhbWluZxIwChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVmYWxzZVIPc2VydmVyU3RyZWFtaW5nIpIJCgtGaWxlT3B0aW9ucxIhCgxqYXZhX3BhY2thZ2UYASABKAlSC2phdmFQYWNrYWdlEjAKFGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJUhJqYXZhT3V0ZXJDbGFzc25hbWUSNQoTamF2YV9tdWx0aXBsZV9maWxlcxgKIAEoCDoFZmFsc2VSEWphdmFNdWx0aXBsZUZpbGVzEkQKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2FuZF9oYXNoGBQgASgIQgIYAVIZamF2YUdlbmVyYXRlRXF1YWxzQW5kSGFzaBI6ChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsgASgIOgVmYWxzZVITamF2YVN0cmluZ0NoZWNrVXRmOBJTCgxvcHRpbWl6ZV9mb3IYCSABKA4yKS5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMuT3B0aW1pemVNb2RlOgVTUEVFRFILb3B0aW1pemVGb3ISHQoKZ29fcGFja2FnZRgLIAEoCVIJZ29QYWNrYWdlEjUKE2NjX2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZhbHNlUhFjY0dlbmVyaWNTZXJ2aWNlcxI5ChVqYXZhX2dlbmVyaWNfc2VydmljZXMYESABKAg6BWZhbHNlUhNqYXZhR2VuZXJpY1NlcnZpY2VzEjUKE3B5X2dlbmVyaWNfc2VydmljZXMYEiABKAg6BWZhbHNlUhFweUdlbmVyaWNTZXJ2aWNlcxI3ChRwaHBfZ2VuZXJpY19zZXJ2aWNlcxgqIAEoCDoFZmFsc2VSEnBocEdlbmVyaWNTZXJ2aWNlcxIlCgpkZXByZWNhdGVkGBcgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIvChBjY19lbmFibGVfYXJlbmFzGB8gASgIOgVmYWxzZVIOY2NFbmFibGVBcmVuYXMSKgoRb2JqY19jbGFzc19wcmVmaXgYJCABKAlSD29iamNDbGFzc1ByZWZpeBIpChBjc2hhcnBfbmFtZXNwYWNlGCUgASgJUg9jc2hhcnBOYW1lc3BhY2USIQoMc3dpZnRfcHJlZml4GCcgASgJUgtzd2lmdFByZWZpeBIoChBwaHBfY2xhc3NfcHJlZml4GCggASgJUg5waHBDbGFzc1ByZWZpeBIjCg1waHBfbmFtZXNwYWNlGCkgASgJUgxwaHBOYW1lc3BhY2USNAoWcGhwX21ldGFkYXRhX25hbWVzcGFjZRgsIAEoCVIUcGhwTWV0YWRhdGFOYW1lc3BhY2USIQoMcnVieV9wYWNrYWdlGC0gASgJUgtydWJ5UGFja2FnZRJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiI6CgxPcHRpbWl6ZU1vZGUSCQoFU1BFRUQQARINCglDT0RFX1NJWkUQAhIQCgxMSVRFX1JVTlRJTUUQAyoJCOgHEICAgIACSgQIJhAnItECCg5NZXNzYWdlT3B0aW9ucxI8ChdtZXNzYWdlX3NldF93aXJlX2Zvcm1hdBgBIAEoCDoFZmFsc2VSFG1lc3NhZ2VTZXRXaXJlRm9ybWF0EkwKH25vX3N0YW5kYXJkX2Rlc2NyaXB0b3JfYWNjZXNzb3IYAiABKAg6BWZhbHNlUhxub1N0YW5kYXJkRGVzY3JpcHRvckFjY2Vzc29yEiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhsKCW1hcF9lbnRyeRgHIAEoCFIIbWFwRW50cnkSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAgQCUoECAkQCiLiAwoMRmllbGRPcHRpb25zEkEKBWN0eXBlGAEgASgOMiMuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5DVHlwZToGU1RSSU5HUgVjdHlwZRIWCgZwYWNrZWQYAiABKAhSBnBhY2tlZBJHCgZqc3R5cGUYBiABKA4yJC5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkpTVHlwZToJSlNfTk9STUFMUgZqc3R5cGUSGQoEbGF6eRgFIAEoCDoFZmFsc2VSBGxhenkSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGQoEd2VhaxgKIAEoCDoFZmFsc2VSBHdlYWsSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iLwoFQ1R5cGUSCgoGU1RSSU5HEAASCAoEQ09SRBABEhAKDFNUUklOR19QSUVDRRACIjUKBkpTVHlwZRINCglKU19OT1JNQUwQABINCglKU19TVFJJTkcQARINCglKU19OVU1CRVIQAioJCOgHEICAgIACSgQIBBAFInMKDE9uZW9mT3B0aW9ucxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIsABCgtFbnVtT3B0aW9ucxIfCgthbGxvd19hbGlhcxgCIAEoCFIKYWxsb3dBbGlhcxIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACSgQIBRAGIp4BChBFbnVtVmFsdWVPcHRpb25zEiUKCmRlcHJlY2F0ZWQYASABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIinAEKDlNlcnZpY2VPcHRpb25zEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIi4AIKDU1ldGhvZE9wdGlvbnMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQScQoRaWRlbXBvdGVuY3lfbGV2ZWwYIiABKA4yLy5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucy5JZGVtcG90ZW5jeUxldmVsOhNJREVNUE9URU5DWV9VTktOT1dOUhBpZGVtcG90ZW5jeUxldmVsElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIlAKEElkZW1wb3RlbmN5TGV2ZWwSFwoTSURFTVBPVEVOQ1lfVU5LTk9XThAAEhMKD05PX1NJREVfRUZGRUNUUxABEg4KCklERU1QT1RFTlQQAioJCOgHEICAgIACIpoDChNVbmludGVycHJldGVkT3B0aW9uEkEKBG5hbWUYAiADKAsyLS5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbi5OYW1lUGFydFIEbmFtZRIpChBpZGVudGlmaWVyX3ZhbHVlGAMgASgJUg9pZGVudGlmaWVyVmFsdWUSLAoScG9zaXRpdmVfaW50X3ZhbHVlGAQgASgEUhBwb3NpdGl2ZUludFZhbHVlEiwKEm5lZ2F0aXZlX2ludF92YWx1ZRgFIAEoA1IQbmVnYXRpdmVJbnRWYWx1ZRIhCgxkb3VibGVfdmFsdWUYBiABKAFSC2RvdWJsZVZhbHVlEiEKDHN0cmluZ192YWx1ZRgHIAEoDFILc3RyaW5nVmFsdWUSJwoPYWdncmVnYXRlX3ZhbHVlGAggASgJUg5hZ2dyZWdhdGVWYWx1ZRpKCghOYW1lUGFydBIbCgluYW1lX3BhcnQYASACKAlSCG5hbWVQYXJ0EiEKDGlzX2V4dGVuc2lvbhgCIAIoCFILaXNFeHRlbnNpb24ipwIKDlNvdXJjZUNvZGVJbmZvEkQKCGxvY2F0aW9uGAEgAygLMiguZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvLkxvY2F0aW9uUghsb2NhdGlvbhrOAQoITG9jYXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSFgoEc3BhbhgCIAMoBUICEAFSBHNwYW4SKQoQbGVhZGluZ19jb21tZW50cxgDIAEoCVIPbGVhZGluZ0NvbW1lbnRzEisKEXRyYWlsaW5nX2NvbW1lbnRzGAQgASgJUhB0cmFpbGluZ0NvbW1lbnRzEjoKGWxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMYBiADKAlSF2xlYWRpbmdEZXRhY2hlZENvbW1lbnRzItEBChFHZW5lcmF0ZWRDb2RlSW5mbxJNCgphbm5vdGF0aW9uGAEgAygLMi0uZ29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb25SCmFubm90YXRpb24abQoKQW5ub3RhdGlvbhIWCgRwYXRoGAEgAygFQgIQAVIEcGF0aBIfCgtzb3VyY2VfZmlsZRgCIAEoCVIKc291cmNlRmlsZRIUCgViZWdpbhgDIAEoBVIFYmVnaW4SEAoDZW5kGAQgASgFUgNlbmRCjwEKE2NvbS5nb29nbGUucHJvdG9idWZCEERlc2NyaXB0b3JQcm90b3NIAVo+Z2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHJvdG9jLWdlbi1nby9kZXNjcmlwdG9yO2Rlc2NyaXB0b3L4AQGiAgNHUEKqAhpHb29nbGUuUHJvdG9idWYuUmVmbGVjdGlvbkqsvgIKBxIFJwDyBgEKqg8KAQwSAycAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtsCIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIFRoZSBtZXNzYWdlcyBpbiB0aGlzIGZpbGUgZGVzY3JpYmUgdGhlIGRlZmluaXRpb25zIGZvdW5kIGluIC5wcm90byBmaWxlcy4KIEEgdmFsaWQgLnByb3RvIGZpbGUgY2FuIGJlIHRyYW5zbGF0ZWQgZGlyZWN0bHkgdG8gYSBGaWxlRGVzY3JpcHRvclByb3RvCiB3aXRob3V0IGFueSBvdGhlciBpbmZvcm1hdGlvbiAoZS5nLiB3aXRob3V0IHJlYWRpbmcgaXRzIGltcG9ydHMpLgoKCAoBAhID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dG9yZSB0aGUgdmFsdWVzIGluIHRoZW0uICBJbnN0ZWFkIGl0IHN0b3JlcyB0aGVtIGluIGEgZmllbGQgaW4gdGhlICpPcHRpb25zCiBtZXNzYWdlIGNhbGxlZCB1bmludGVycHJldGVkX29wdGlvbi4gVGhpcyBmaWVsZCBtdXN0IGhhdmUgdGhlIHNhbWUgbmFtZQogYWNyb3NzIGFsbCAqT3B0aW9ucyBtZXNzYWdlcy4gV2UgdGhlbiB1c2UgdGhpcyBmaWVsZCB0byBwb3B1bGF0ZSB0aGUKIGV4dGVuc2lvbnMgd2hlbiB3ZSBidWlsZCBhIGRlc2NyaXB0b3IsIGF0IHdoaWNoIHBvaW50IGFsbCBwcm90b3MgaGF2ZSBiZWVuCiBwYXJzZWQgYW5kIHNvIGFsbCBleHRlbnNpb25zIGFyZSBrbm93bi4KCiBFeHRlbnNpb24gbnVtYmVycyBmb3IgY3VzdG9tIG9wdGlvbnMgbWF5IGJlIGNob3NlbiBhcyBmb2xsb3dzOgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIG9ubHkgYmUgdXNlZCB3aXRoaW4gYSBzaW5nbGUgYXBwbGljYXRpb24gb3IKICAgb3JnYW5pemF0aW9uLCBvciBmb3IgZXhwZXJpbWVudGFsIG9wdGlvbnMsIHVzZSBmaWVsZCBudW1iZXJzIDUwMDAwCiAgIHRocm91Z2ggOTk5OTkuICBJdCBpcyB1cCB0byB5b3UgdG8gZW5zdXJlIHRoYXQgeW91IGRvIG5vdCB1c2UgdGhlCiAgIHNhbWUgbnVtYmVyIGZvciBtdWx0aXBsZSBvcHRpb25zLgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIGJlIHB1Ymxpc2hlZCBhbmQgdXNlZCBwdWJsaWNseSBieSBtdWx0aXBsZQogICBpbmRlcGVuZGVudCBlbnRpdGllcywgZS1tYWlsIHByb3RvYnVmLWdsb2JhbC1leHRlbnNpb24tcmVnaXN0cnlAZ29vZ2xlLmNvbQogICB0byByZXNlcnZlIGV4dGVuc2lvbiBudW1iZXJzLiBTaW1wbHkgcHJvdmlkZSB5b3VyIHByb2plY3QgbmFtZSAoZS5nLgogICBPYmplY3RpdmUtQyBwbHVnaW4pIGFuZCB5b3VyIHByb2plY3Qgd2Vic2l0ZSAoaWYgYXZhaWxhYmxlKSAtLSB0aGVyZSdzIG5vCiAgIG5lZWQgdG8gZXhwbGFpbiBob3cgeW91IGludGVuZCB0byB1c2UgdGhlbS4gVXN1YWxseSB5b3Ugb25seSBuZWVkIG9uZQogICBleHRlbnNpb24gbnVtYmVyLiBZb3UgY2FuIGRlY2xhcmUgbXVsdGlwbGUgb3B0aW9ucyB3aXRoIG9ubHkgb25lIGV4dGVuc2lvbgogICBudW1iZXIgYnkgcHV0dGluZyB0aGVtIGluIGEgc3ViLW1lc3NhZ2UuIFNlZSB0aGUgQ3VzdG9tIE9wdGlvbnMgc2VjdGlvbiBvZgogICB0aGUgZG9jcyBmb3IgZXhhbXBsZXM6CiAgIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90byNvcHRpb25zCiAgIElmIHRoaXMgdHVybnMgb3V0IHRvIGJlIHBvcHVsYXIsIGEgd2ViIHNlcnZpY2Ugd2lsbCBiZSBzZXQgdXAKICAgdG8gYXV0b21hdGljYWxseSBhc3NpZ24gb3B0aW9uIG51bWJlcnMuCgoLCgMECgESBL0CCBMK9AEKBAQKAgASBMMCAiMa5QEgU2V0cyB0aGUgSmF2YSBwYWNrYWdlIHdoZXJlIGNsYXNzZXMgZ2VuZXJhdGVkIGZyb20gdGhpcyAucHJvdG8gd2lsbCBiZQogcGxhY2VkLiAgQnkgZGVmYXVsdCwgdGhlIHByb3RvIHBhY2thZ2UgaXMgdXNlZCwgYnV0IHRoaXMgaXMgb2Z0ZW4KIGluYXBwcm9wcmlhdGUgYmVjYXVzZSBwcm90byBwYWNrYWdlcyBkbyBub3Qgbm9ybWFsbHkgc3RhcnQgd2l0aCBiYWNrd2FyZHMKIGRvbWFpbiBuYW1lcy4KCg0KBQQKAgAEEgTDAgIKCg0KBQQKAgAFEgTDAgsRCg0KBQQKAgABEgTDAhIeCg0KBQQKAgADEgTDAiEiCr8CCgQECgIBEgTLAgIrGrACIElmIHNldCwgYWxsIHRoZSBjbGFzc2VzIGZyb20gdGhlIC5wcm90byBmaWxlIGFyZSB3cmFwcGVkIGluIGEgc2luZ2xlCiBvdXRlciBjbGFzcyB3aXRoIHRoZSBnaXZlbiBuYW1lLiAgVGhpcyBhcHBsaWVzIHRvIGJvdGggUHJvdG8xCiAoZXF1aXZhbGVudCB0byB0aGUgb2xkICItLW9uZV9qYXZhX2ZpbGUiIG9wdGlvbikgYW5kIFByb3RvMiAod2hlcmUKIGEgLnByb3RvIGFsd2F5cyB0cmFuc2xhdGVzIHRvIGEgc2luZ2xlIGNsYXNzLCBidXQgeW91IG1heSB3YW50IHRvCiBleHBsaWNpdGx5IGNob29zZSB0aGUgY2xhc3MgbmFtZSkuCgoNCgUECgIBBBIEywICCgoNCgUECgIBBRIEywILEQoNCgUECgIBARIEywISJgoNCgUECgIBAxIEywIpKgqjAwoEBAoCAhIE0wICORqUAyBJZiBzZXQgdHJ1ZSwgdGhlbiB0aGUgSmF2YSBjb2RlIGdlbmVyYXRvciB3aWxsIGdlbmVyYXRlIGEgc2VwYXJhdGUgLmphdmEKIGZpbGUgZm9yIGVhY2ggdG9wLWxldmVsIG1lc3NhZ2UsIGVudW0sIGFuZCBzZXJ2aWNlIGRlZmluZWQgaW4gdGhlIC5wcm90bwogZmlsZS4gIFRodXMsIHRoZXNlIHR5cGVzIHdpbGwgKm5vdCogYmUgbmVzdGVkIGluc2lkZSB0aGUgb3V0ZXIgY2xhc3MKIG5hbWVkIGJ5IGphdmFfb3V0ZXJfY2xhc3NuYW1lLiAgSG93ZXZlciwgdGhlIG91dGVyIGNsYXNzIHdpbGwgc3RpbGwgYmUKIGdlbmVyYXRlZCB0byBjb250YWluIHRoZSBmaWxlJ3MgZ2V0RGVzY3JpcHRvcigpIG1ldGhvZCBhcyB3ZWxsIGFzIGFueQogdG9wLWxldmVsIGV4dGVuc2lvbnMgZGVmaW5lZCBpbiB0aGUgZmlsZS4KCg0KBQQKAgIEEgTTAgIKCg0KBQQKAgIFEgTTAgsPCg0KBQQKAgIBEgTTAhAjCg0KBQQKAgIDEgTTAiYoCg0KBQQKAgIIEgTTAik4Cg0KBQQKAgIHEgTTAjI3CikKBAQKAgMSBNYCAkUaGyBUaGlzIG9wdGlvbiBkb2VzIG5vdGhpbmcuCgoNCgUECgIDBBIE1gICCgoNCgUECgIDBRIE1gILDwoNCgUECgIDARIE1gIQLQoNCgUECgIDAxIE1gIwMgoNCgUECgIDCBIE1gIzRAoOCgYECgIDCAMSBNYCNEMK5gIKBAQKAgQSBN4CAjwa1wIgSWYgc2V0IHRydWUsIHRoZW4gdGhlIEphdmEyIGNvZGUgZ2VuZXJhdG9yIHdpbGwgZ2VuZXJhdGUgY29kZSB0aGF0CiB0aHJvd3MgYW4gZXhjZXB0aW9uIHdoZW5ldmVyIGFuIGF0dGVtcHQgaXMgbWFkZSB0byBhc3NpZ24gYSBub24tVVRGLTgKIGJ5dGUgc2VxdWVuY2UgdG8gYSBzdHJpbmcgZmllbGQuCiBNZXNzYWdlIHJlZmxlY3Rpb24gd2lsbCBkbyB0aGUgc2FtZS4KIEhvd2V2ZXIsIGFuIGV4dGVuc2lvbiBmaWVsZCBzdGlsbCBhY2NlcHRzIG5vbi1VVEYtOCBieXRlIHNlcXVlbmNlcy4KIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3Qgb24gd2hlbiB1c2VkIHdpdGggdGhlIGxpdGUgcnVudGltZS4KCg0KBQQKAgQEEgTeAgIKCg0KBQQKAgQFEgTeAgsPCg0KBQQKAgQBEgTeAhAmCg0KBQQKAgQDEgTeAikrCg0KBQQKAgQIEgTeAiw7Cg0KBQQKAgQHEgTeAjU6CkwKBAQKBAASBuICAucCAxo8IEdlbmVyYXRlZCBjbGFzc2VzIGNhbiBiZSBvcHRpbWl6ZWQgZm9yIHNwZWVkIG9yIGNvZGUgc2l6ZS4KCg0KBQQKBAABEgTiAgcTCkQKBgQKBAACABIE4wIEDiI0IEdlbmVyYXRlIGNvbXBsZXRlIGNvZGUgZm9yIHBhcnNpbmcsIHNlcmlhbGl6YXRpb24sCgoPCgcECgQAAgABEgTjAgQJCg8KBwQKBAACAAISBOMCDA0KRwoGBAoEAAIBEgTlAgQSGgYgZXRjLgoiLyBVc2UgUmVmbGVjdGlvbk9wcyB0byBpbXBsZW1lbnQgdGhlc2UgbWV0aG9kcy4KCg8KBwQKBAACAQESBOUCBA0KDwoHBAoEAAIBAhIE5QIQEQpHCgYECgQAAgISBOYCBBUiNyBHZW5lcmF0ZSBjb2RlIHVzaW5nIE1lc3NhZ2VMaXRlIGFuZCB0aGUgbGl0ZSBydW50aW1lLgoKDwoHBAoEAAICARIE5gIEEAoPCgcECgQAAgICEgTmAhMUCgwKBAQKAgUSBOgCAjkKDQoFBAoCBQQSBOgCAgoKDQoFBAoCBQYSBOgCCxcKDQoFBAoCBQESBOgCGCQKDQoFBAoCBQMSBOgCJygKDQoFBAoCBQgSBOgCKTgKDQoFBAoCBQcSBOgCMjcK4gIKBAQKAgYSBO8CAiIa0wIgU2V0cyB0aGUgR28gcGFja2FnZSB3aGVyZSBzdHJ1Y3RzIGdlbmVyYXRlZCBmcm9tIHRoaXMgLnByb3RvIHdpbGwgYmUKIHBsYWNlZC4gSWYgb21pdHRlZCwgdGhlIEdvIHBhY2thZ2Ugd2lsbCBiZSBkZXJpdmVkIGZyb20gdGhlIGZvbGxvd2luZzoKICAgLSBUaGUgYmFzZW5hbWUgb2YgdGhlIHBhY2thZ2UgaW1wb3J0IHBhdGgsIGlmIHByb3ZpZGVkLgogICAtIE90aGVyd2lzZSwgdGhlIHBhY2thZ2Ugc3RhdGVtZW50IGluIHRoZSAucHJvdG8gZmlsZSwgaWYgcHJlc2VudC4KICAgLSBPdGhlcndpc2UsIHRoZSBiYXNlbmFtZSBvZiB0aGUgLnByb3RvIGZpbGUsIHdpdGhvdXQgZXh0ZW5zaW9uLgoKDQoFBAoCBgQSBO8CAgoKDQoFBAoCBgUSBO8CCxEKDQoFBAoCBgESBO8CEhwKDQoFBAoCBgMSBO8CHyEK1AQKBAQKAgcSBP0CAjkaxQQgU2hvdWxkIGdlbmVyaWMgc2VydmljZXMgYmUgZ2VuZXJhdGVkIGluIGVhY2ggbGFuZ3VhZ2U/ICAiR2VuZXJpYyIgc2VydmljZXMKIGFyZSBub3Qgc3BlY2lmaWMgdG8gYW55IHBhcnRpY3VsYXIgUlBDIHN5c3RlbS4gIFRoZXkgYXJlIGdlbmVyYXRlZCBieSB0aGUKIG1haW4gY29kZSBnZW5lcmF0b3JzIGluIGVhY2ggbGFuZ3VhZ2UgKHdpdGhvdXQgYWRkaXRpb25hbCBwbHVnaW5zKS4KIEdlbmVyaWMgc2VydmljZXMgd2VyZSB0aGUgb25seSBraW5kIG9mIHNlcnZpY2UgZ2VuZXJhdGlvbiBzdXBwb3J0ZWQgYnkKIGVhcmx5IHZlcnNpb25zIG9mIGdvb2dsZS5wcm90b2J1Zi4KCiBHZW5lcmljIHNlcnZpY2VzIGFyZSBub3cgY29uc2lkZXJlZCBkZXByZWNhdGVk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dCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgdGhlIG1lc3NhZ2UsIG9yIGl0IHdpbGwgYmUgY29tcGxldGVseSBpZ25vcmVkOyBpbiB0aGUgdmVyeSBsZWFzdCwKIHRoaXMgaXMgYSBmb3JtYWxpemF0aW9uIGZvciBkZXByZWNhdGluZyBtZXNzYWdlcy4KCg0KBQQLAgIEEgTXAwIKCg0KBQQLAgIFEgTXAwsPCg0KBQQLAgIBEgTXAxAaCg0KBQQLAgIDEgTXAx0eCg0KBQQLAgIIEgTXAx8uCg0KBQQLAgIHEgTXAygtCp4GCgQECwIDEgTuAwIeGo8GIFdoZXRoZXIgdGhlIG1lc3NhZ2UgaXMgYW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFwIGVudHJ5IHR5cGUgZm9yIHRoZQogbWFwcyBmaWVsZC4KCiBGb3IgbWFwcyBmaWVsZHM6CiAgICAgbWFwPEtleVR5cGUsIFZhbHVlVHlwZT4gbWFwX2ZpZWxkID0gMTsKIFRoZSBwYXJzZWQgZGVzY3JpcHRvciBsb29rcyBsaWtlOgogICAgIG1lc3NhZ2UgTWFwRmllbGRFbnRyeSB7CiAgICAgICAgIG9wdGlvbiBtYXBfZW50cnkgPSB0cnVlOwogICAgICAgICBvcHRpb25hbCBLZXlUeXBlIGtleSA9IDE7CiAgICAgICAgIG9wdGlvbmFsIFZhbHVlVHlwZSB2YWx1ZSA9IDI7CiAgICAgfQogICAgIHJlcGVhdGVkIE1hcEZpZWxkRW50cnkgbWFwX2ZpZWxkID0gMTsKCiBJbXBsZW1lbnRhdGlvbnMgbWF5IGNob29zZSBub3QgdG8gZ2VuZXJhdGUgdGhlIG1hcF9lbnRyeT10cnVlIG1lc3NhZ2UsIGJ1dAogdXNlIGEgbmF0aXZlIG1hcCBpbiB0aGUgdGFyZ2V0IGxhbmd1YWdlIHRvIGhvbGQgdGhlIGtleXMgYW5kIHZhbHVlcy4KIFRoZSByZWZsZWN0aW9uIEFQSXMgaW4gc3VjaCBpbXBsZW1lbnRpb25zIHN0aWxsIG5lZWQgdG8gd29yayBhcwogaWYgdGhlIGZpZWxkIGlzIGEgcmVwZWF0ZWQgbWVzc2FnZSBmaWVsZC4KCiBOT1RFOiBEbyBub3Qgc2V0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cyBmaWVsZCBiZSBwYXJzZWQgbGF6aWx5PyAgTGF6eSBhcHBsaWVzIG9ubHkgdG8gbWVzc2FnZS10eXBlCiBmaWVsZHMuICBJdCBtZWFucyB0aGF0IHdoZW4gdGhlIG91dGVyIG1lc3NhZ2UgaXMgaW5pdGlhbGx5IHBhcnNlZCwgdGhlCiBpbm5lciBtZXNzYWdlJ3MgY29udGVudHMgd2lsbCBub3QgYmUgcGFyc2VkIGJ1dCBpbnN0ZWFkIHN0b3JlZCBpbiBlbmNvZGVkCiBmb3JtLiAgVGhlIGlubmVyIG1lc3NhZ2Ugd2lsbCBhY3R1YWxseSBiZSBwYXJzZWQgd2hlbiBpdCBpcyBmaXJzdCBhY2Nlc3NlZC4KCiBUaGlzIGlzIG9ubHkgYSBoaW50LiAgSW1wbGVtZW50YXRpb25zIGFyZSBmcmVlIHRvIGNob29zZSB3aGV0aGVyIHRvIHVzZQogZWFnZXIgb3IgbGF6eSBwYXJzaW5nIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9uLiAgSG93ZXZlciwKIHNldHRpbmcgdGhpcyBvcHRpb24gdHJ1ZSBzdWdnZXN0cyB0aGF0IHRoZSBwcm90b2NvbCBhdXRob3IgYmVsaWV2ZXMgdGhhdAogdXNpbmcgbGF6eSBwYXJzaW5nIG9uIHRoaXMgZmllbGQgaXMgd29ydGggdGhlIGFkZGl0aW9uYWwgYm9va2tlZXBpbmcKIG92ZXJoZWFkIHR5cGljYWxseSBuZWVkZWQgdG8gaW1wbGVtZW50IGl0LgoKIFRoaXMgb3B0aW9uIGRvZXMgbm90IGFmZmVjdCB0aGUgcHVibGljIGludGVyZmFjZSBvZiBhbnkgZ2VuZXJhdGVkIGNvZGU7CiBhbGwgbWV0aG9kIHNpZ25hdHVyZXMgcmVtYWluIHRoZSBzYW1lLiAgRnVydGhlcm1vcmUsIHRocmVhZC1zYWZldHkgb2YgdGhlCiBpbnRlcmZhY2UgaXMgbm90IGFmZmVjdGVkIGJ5IHRoaXMgb3B0aW9uOyBjb25zdCBtZXRob2RzIHJlbWFpbiBzYWZlIHRvCiBjYWxsIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBjb25jdXJyZW50bHksIHdoaWxlIG5vbi1jb25zdCBtZXRob2RzIGNvbnRpbnVlCiB0byByZXF1aXJlIGV4Y2x1c2l2ZSBhY2Nlc3MuCgoKIE5vdGUgdGhhdCBpbXBsZW1lbnRhdGlvbnMgbWF5IGNob29zZSBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzIHdpdGhpbgogYSBsYXp5IHN1Yi1tZXNzYWdlLiAgVGhhdCBpcywgY2FsbGluZyBJc0luaXRpYWxpemVkKCkgb24gdGhlIG91dGVyIG1lc3NhZ2UKIG1heSByZXR1cm4gdHJ1ZSBldmVuIGlmIHRoZSBpbm5lciBtZXNzYWdlIGhhcyBtaXNzaW5nIHJlcXVpcmVkIGZpZWxkcy4KIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBpbm5lciBtZXNzYWdlIHdvdWxkIGhhdmUgdG8gYmUKIHBhcnNlZCBpbiBvcmRlciB0byBwZXJmb3JtIHRoZSBjaGVjaywgZGVmZWF0aW5nIHRoZSBwdXJwb3NlIG9mIGxhenkKIHBhcnNpbmcuICBBbiBpbXBsZW1lbnRhdGlvbiB3aGljaCBjaG9vc2VzIG5vdCB0byBjaGVjayByZXF1aXJlZCBmaWVsZHMKIG11c3QgYmUgY29uc2lzdGVudCBhYm91dCBpdC4gIFRoYXQgaXMsIGZvciBhbnkgcGFydGljdWxhciBzdWItbWVzc2FnZSwgdGhlCiBpbXBsZW1lbnRhdGlvbiBtdXN0IGVpdGhlciAqYWx3YXlzKiBjaGVjayBpdHMgcmVxdWlyZWQgZmllbGRzLCBvciAqbmV2ZXIqCiBjaGVjayBpdHMgcmVxdWlyZWQgZmllbGRzLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBtZXNzYWdlIGhhcwogYmVlbiBwYXJzZWQuCgoNCgUEDAIDBBIEwgQCCgoNCgUEDAIDBRIEwgQLDwoNCgUEDAIDARIEwgQQFAoNCgUEDAIDAxIEwgQXGAoNCgUEDAIDCBIEwgQZKAoNCgUEDAIDBxIEwgQiJwroAQoEBAwCBBIEyAQCLxrZASBJcyB0aGlzIGZpZWxkIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4g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CgUEEQIBBBIEqwUCCgoNCgUEEQIBBhIEqwULGwoNCgUEEQIBARIEqwUcLQoNCgUEEQIBAxIErAUGCAoNCgUEEQIBCBIErAUJJgoNCgUEEQIBBxIErAUSJQpPCgQEEQICEgSvBQI6GkEgVGhlIHBhcnNlciBzdG9yZXMgb3B0aW9ucyBpdCBkb2Vzbid0IHJlY29nbml6ZSBoZXJlLiBTZWUgYWJvdmUuCgoNCgUEEQICBBIErwUCCgoNCgUEEQICBhIErwULHgoNCgUEEQICARIErwUfMwoNCgUEEQICAxIErwU2OQpaCgMEEQUSBLIFAhkaTSBDbGllbnRzIGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuIFNlZSBhYm92ZS4KCgwKBAQRBQASBLIFDRgKDQoFBBEFAAESBLIFDREKDQoFBBEFAAISBLIFFRgKiwMKAgQSEga8BQDQBQEa/AIgQSBtZXNzYWdlIHJlcHJlc2VudGluZyBhIG9wdGlvbiB0aGUgcGFyc2VyIGRvZXMgbm90IHJlY29nbml6ZS4gVGhpcyBvbmx5CiBhcHBlYXJzIGluIG9wdGlvbnMgcHJvdG9zIGNyZWF0ZWQgYnkgdGhlIGNvbXBpbGVyOjpQYXJzZXIgY2xhc3MuCiBEZXNjcmlwdG9yUG9vbCByZXNvbHZlcyB0aGVzZSB3aGVuIGJ1aWxkaW5nIERlc2NyaXB0b3Igb2JqZWN0cy4gVGhlcmVmb3JlLAogb3B0aW9ucyBwcm90b3MgaW4gZGVzY3JpcHRvciBvYmplY3RzIChlLmcuIHJldHVybmVkIGJ5IERlc2NyaXB0b3I6Om9wdGlvbnMoKSwKIG9yIHByb2R1Y2VkIGJ5IERlc2NyaXB0b3I6OkNvcHlUbygpKSB3aWxsIG5ldmVyIGhhdmUgVW5pbnRlcnByZXRlZE9wdGlvbnMKIGluIHRoZW0uCgoLCgMEEgESBLwFCBsKywIKBAQSAwASBsIFAsUFAxq6AiBUaGUgbmFtZSBvZiB0aGUgdW5pbnRlcnByZXRlZCBvcHRpb24uICBFYWNoIHN0cmluZyByZXByZXNlbnRzIGEgc2VnbWVudCBpbgogYSBkb3Qtc2VwYXJhdGVkIG5hbWUuICBpc19l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ICAgICAgICAgICAgICAgcmVwcmVzZW50cwogICBbYSxpKSAgWyA0LCAwLCAyLCAwIF0gICAgIFRoZSB3aG9sZSBmaWVsZCBkZWZpbml0aW9uLgogICBbYSxiKSAgWyA0LCAwLCAyLCAwLCA0IF0gIFRoZSBsYWJlbCAob3B0aW9uYWwpLgogICBbYyxkKSAgWyA0LCAwLCAyLCAwLCA1IF0gIFRoZSB0eXBlIChzdHJpbmcpLgogICBbZSxmKSAgWyA0LCAwLCAyLCAwLCAxIF0gIFRoZSBuYW1lIChmb28pLgogICBbZyxoKSAgWyA0LCAwLCAyLCAwLCAzIF0gIFRoZSBudW1iZXIgKDEpLgoKIE5vdGVzOgogLSBBIGxvY2F0aW9uIG1heSByZWZlciB0byBhIHJlcGVhdGVkIGZpZWxkIGl0c2VsZiAoaS5lLiBub3QgdG8gYW55CiAgIHBhcnRpY3VsYXIgaW5kZXggd2l0aGluIGl0KS4gIFRoaXMgaXMgdXNlZCB3aGVuZXZlciBhIHNldCBvZiBlbGVtZW50cyBhcmUKICAgbG9naWNhbGx5IGVuY2xvc2VkIGluIGEgc2luZ2xlIGNvZGUgc2VnbWVudC4gIEZvciBleGFtcGxlLCBhbiBlbnRpcmUKICAgZXh0ZW5kIGJsb2NrIChwb3NzaWJseSBjb250YWluaW5nIG11bHRpcGxlIGV4dGVuc2lvbiBkZWZpbml0aW9ucykgd2lsbAogICBoYXZlIGFuIG91dGVyIGxvY2F0aW9uIHdob3NlIHBhdGggcmVmZXJzIHRvIHRoZSAiZXh0ZW5zaW9ucyIgcmVwZWF0ZWQKICAgZmllbGQgd2l0aG91dCBhbiBpbmRleC4KIC0gTXVsdGlwbGUgbG9jYXRpb25zIG1heSBoYXZlIHRoZSBzYW1lIHBhdGguICBUaGlzIGhhcHBlbnMgd2hlbiBhIHNpbmdsZQogICBsb2dpY2FsIGRlY2xhcmF0aW9uIGlzIHNwcmVhZCBvdXQgYWNyb3NzIG11bHRpcGxlIHBsYWNlcy4gIFRoZSBtb3N0CiAgIG9idmlvdXMgZXhhbXBsZSBpcyB0aGUgImV4dGVuZCIgYmxvY2sgYWdhaW4gLS0gdGhlcmUgbWF5IGJlIG11bHRpcGxlCiAgIGV4dGVuZCBibG9ja3MgaW4gdGhlIHNhbWUgc2NvcGUsIGVhY2ggb2Ygd2hpY2ggd2lsbCBoYXZlIHRoZSBzYW1lIHBhdGguCiAtIEEgbG9jYXRpb24ncyBzcGFuIGlzIG5vdCBhbHdheXMgYSBzdWJzZXQgb2YgaXRzIHBhcmVudCdzIHNwYW4uICBGb3IKICAgZXhhbXBsZSwgdGhlICJleHRlbmRlZSIgb2YgYW4gZXh0ZW5zaW9uIGRlY2xhcmF0aW9uIGFwcGVhcnMgYXQgdGhlCiAgIGJlZ2lubmluZyBvZiB0aGUgImV4dGVuZCIgYmxvY2sgYW5kIGlzIHNoYXJlZCBieSBhbGwgZXh0ZW5zaW9ucyB3aXRoaW4KICAgdGhlIGJsb2NrLgogLSBKdXN0IGJlY2F1c2UgYSBsb2NhdGlvbidzIHNwYW4gaXMgYSBzdWJzZXQgb2Ygc29tZSBvdGhlciBsb2NhdGlvbidzIHNwYW4KICAgZG9lcyBub3QgbWVhbiB0aGF0IGl0IGlzIGEgZGVzY2VuZGVudC4gIEZvciBleGFtcGxlLCBhICJncm91cCIgZGVmaW5lcwogICBib3RoIGEgdHlwZSBhbmQgYSBmaWVsZCBpbiBhIHNpbmdsZSBkZWNsYXJhdGlvbi4gIFRodXMsIHRoZSBsb2NhdGlvbnMKICAgY29ycmVzcG9uZGluZyB0byB0aGUgdHlwZSBhbmQgZmllbGQgYW5kIHRoZWlyIGNvbXBvbmVudHMgd2lsbCBvdmVybGFwLgogLSBDb2RlIHdoaWNoIHRyaWVzIHRvIGludGVycHJldCBsb2NhdGlvbnMgc2hvdWxkIHByb2JhYmx5IGJlIGRlc2lnbmVkIHRvCiAgIGlnbm9yZSB0aG9zZSB0aGF0IGl0IGRvZXNuJ3QgdW5kZXJzdGFuZCwgYXMgbW9yZSB0eXBlcyBvZiBsb2NhdGlvbnMgY291bGQKICAgYmUgcmVjb3JkZWQgaW4gdGhlIGZ1dHVyZS4KCg0KBQQTAgAEEgSDBgIKCg0KBQQTAgAGEgSDBgsTCg0KBQQTAgABEgSDBhQcCg0KBQQTAgADEgSDBh8gCg4KBAQTAwASBoQGAtcGAwoNCgUEEwMAARIEhAYKEgqDBwoGBBMDAAIAEgScBgQqGvIGIElkZW50aWZpZXMgd2hpY2ggcGFydCBvZiB0aGUgRmlsZURlc2NyaXB0b3JQcm90byB3YXMgZGVmaW5lZCBhdCB0aGlzCiBsb2NhdGlvbi4KCiBFYWNoIGVsZW1lbnQgaXMgYSBmaWVsZCBudW1iZXIgb3IgYW4gaW5kZXguICBUaGV5IGZvcm0gYSBwYXRoIGZyb20KIHRoZSByb290IEZpbGVEZXNjcmlwdG9yUHJvdG8gdG8gdGhlIHBsYWNlIHdoZXJlIHRoZSBkZWZpbml0aW9uLiAgRm9yCiBleGFtcGxlLCB0aGlzIHBhdGg6CiAgIFsgNCwgMywgMiwgNywgMSBdCiByZWZlcnMgdG86CiAgIGZpbGUubWVzc2FnZV90eXBlKDMpICAvLyA0LCAzCiAgICAgICAuZmllbGQoNykgICAgICAgICAvLyAyLCA3CiAgICAgICAubmFtZSgpICAgICAgICAgICAvLyAxCiBUaGlzIGlzIGJlY2F1c2UgRmlsZURlc2NyaXB0b3JQcm90by5tZXNzYWdlX3R5cGUgaGFzIGZpZWxkIG51bWJlciA0OgogICByZXBlYXRlZCBEZXNjcmlwdG9yUHJvdG8gbWVzc2FnZV90eXBlID0gNDsKIGFuZCBEZXNjcmlwdG9yUHJvdG8uZmllbGQgaGFzIGZpZWxkIG51bWJlciAyOgogICByZXBlYXRlZCBGaWVsZERlc2NyaXB0b3JQcm90byBmaWVsZCA9IDI7CiBhbmQgRmllbGREZXNjcmlwdG9yUHJvdG8ubmFtZSBoYXMgZmllbGQgbnVtYmVyIDE6CiAgIG9wdGlvbmFsIHN0cmluZyBuYW1lID0gMTsKCiBUaHVzLCB0aGUgYWJvdmUgcGF0aCBnaXZlcyB0aGUgbG9jYXRpb24gb2YgYSBmaWVsZCBuYW1lLiAgSWYgd2UgcmVtb3ZlZAogdGhlIGxhc3QgZWxlbWVudDoKICAgWyA0LCAzLCAyLCA3IF0KIHRoaXMgcGF0aCByZWZlcnMgdG8gdGhlIHdob2xlIGZpZWxkIGRlY2xhcmF0aW9uIChmcm9tIHRoZSBiZWdpbm5pbmcKIG9mIHRoZSBsYWJlbCB0byB0aGUgdGVybWluYXRpbmcgc2VtaWNvbG9uKS4KCg8KBwQTAwACAAQSBJwGBAwKDwoHBBMDAAIABRIEnAYNEgoPCgcEEwMAAgABEgScBhMXCg8KBwQTAwACAAMSBJwGGhsKDwoHBBMDAAIACBIEnAYcKQoQCggEEwMAAgAIAhIEnAYdKArSAgoGBBMDAAIBEgSjBgQqGsECIEFsd2F5cyBoYXMgZXhhY3RseSB0aHJlZSBvciBmb3VyIGVsZW1lbnRzOiBzdGFydCBsaW5lLCBzdGFydCBjb2x1bW4sCiBlbmQgbGluZSAob3B0aW9uYWwsIG90aGVyd2lzZSBhc3N1bWVkIHNhbWUgYXMgc3RhcnQgbGluZSksIGVuZCBjb2x1bW4uCiBUaGVzZSBhcmUgcGFja2VkIGludG8gYSBzaW5nbGUgZmllbGQgZm9yIGVmZmljaWVuY3kuICBOb3RlIHRoYXQgbGluZQogYW5kIGNvbHVtbiBudW1iZXJzIGFyZSB6ZXJvLWJhc2VkIC0tIHR5cGljYWxseSB5b3Ugd2lsbCB3YW50IHRvIGFkZAogMSB0byBlYWNoIGJlZm9yZSBkaXNwbGF5aW5nIHRvIGEgdXNlci4KCg8KBwQTAwACAQQSBKMGBAwKDwoHBBMDAAIBBRIEowYNEgoPCgcEEwMAAgEBEgSjBhMXCg8KBwQTAwACAQMSBKMGGhsKDwoHBBMDAAIBCBIEowYcKQoQCggEEwMAAgEIAhIEowYdKAqlDAoGBBMDAAICEgTUBgQpGpQMIElmIHRoaXMgU291cmNlQ29kZUluZm8gcmVwcmVzZW50cyBhIGNvbXBsZXRlIGRlY2xhcmF0aW9uLCB0aGVzZSBhcmUgYW55CiBjb21tZW50cyBhcHBlYXJpbmcgYmVmb3JlIGFuZCBhZnRlciB0aGUgZGVjbGFyYXRpb24gd2hpY2ggYXBwZWFyIHRvIGJlCiBhdHRhY2hlZCB0byB0aGUgZGVjbGFyYXRpb24uCgogQSBzZXJpZXMgb2YgbGluZSBjb21tZW50cyBhcHBlYXJpbmcgb24gY29uc2VjdXRpdmUgbGluZXMsIHdpdGggbm8gb3RoZXIKIHRva2VucyBhcHBlYXJpbmcgb24gdGhvc2UgbGluZXMsIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHNpbmdsZSBjb21tZW50LgoKIGxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMgd2lsbCBrZWVwIHBhcmFncmFwaHMgb2YgY29tbWVudHMgdGhhdCBhcHBlYXIKIGJlZm9yZSAoYnV0IG5vdCBjb25uZWN0ZWQgdG8pIHRoZSBjdXJyZW50IGVsZW1lbnQuIEVhY2ggcGFyYWdyYXBoLAogc2VwYXJhdGVkIGJ5IGVtcHR5IGxpbmVzLCB3aWxsIGJlIG9uZSBjb21tZW50IGVsZW1lbnQgaW4gdGhlIHJlcGVhdGVkCiBmaWVsZC4KCiBPbmx5IHRoZSBjb21tZW50IGNvbnRlbnQgaXMgcHJvdmlkZWQ7IGNvbW1lbnQgbWFya2VycyAoZS5nLiAvLykgYXJlCiBzdHJpcHBlZCBvdXQuICBGb3IgYmxvY2sgY29tbWVudHMsIGxlYWRpbmcgd2hpdGVzcGFjZSBhbmQgYW4gYXN0ZXJpc2sKIHdpbGwgYmUgc3RyaXBwZWQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggbGluZSBvdGhlciB0aGFuIHRoZSBmaXJzdC4KIE5ld2xpbmVzIGFyZSBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LgoKIEV4YW1wbGVzOgoKICAgb3B0aW9uYWwgaW50MzIgZm9vID0gMTsgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gZm9vLgogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhci4KICAgb3B0aW9uYWwgaW50MzIgYmFyID0gMjsKCiAgIG9wdGlvbmFsIHN0cmluZyBiYXogPSAzOwogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhei4KICAgLy8gQW5vdGhlciBsaW5lIGF0dGFjaGVkIHRvIGJhei4KCiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gcXV4LgogICAvLwogICAvLyBBbm90aGVyIGxpbmUgYXR0YWNoZWQgdG8gcXV4LgogICBvcHRpb25hbCBkb3VibGUgcXV4ID0gNDsKCiAgIC8vIERldGFjaGVkIGNvbW1lbnQgZm9yIGNvcmdlLiBUaGlzIGlzIG5vdCBsZWFkaW5nIG9yIHRyYWlsaW5nIGNvbW1lbnRzCiAgIC8vIHRvIHF1eCBvciBjb3JnZSBiZWNhdXNlIHRoZXJlIGFyZSBibGFuayBsaW5lcyBzZXBhcmF0aW5nIGl0IGZyb20KICAgLy8g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DwoHBBQDAAIDBBIE8AYEDAoPCgcEFAMAAgMFEgTwBg0SCg8KBwQUAwACAwESBPAGExYKDwoHBBQDAAIDAxIE8AYZGgqFEgoYdm9sdGhhX3Byb3Rvcy9tZXRhLnByb3RvEgZ2b2x0aGEaIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnByb3RvIh0KCUNoaWxkTm9kZRIQCgNrZXkYASABKAlSA2tleSoyCgZBY2Nlc3MSCgoGQ09ORklHEAASDQoJUkVBRF9PTkxZEAESDQoJUkVBTF9USU1FEAI6UgoKY2hpbGRfbm9kZRIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMY7N7ZAyABKAsyES52b2x0aGEuQ2hpbGROb2RlUgljaGlsZE5vZGU6SAoGYWNjZXNzEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxjt3tkDIAEoDjIOLnZvbHRoYS5BY2Nlc3NSBmFjY2Vzc0JMChpvcmcub3BlbmNvcmQudm9sdGhhLmNvbW1vblouZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y0L2dvL2NvbW1vbkr3DgoGEgQRADkBCqMFCgEMEgMRABIytwQgQ29weXJpZ2h0IChjKSAyMDE1LCBHb29nbGUgSW5jLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoyXyBUaGlzIGZpbGUgY29udGFpbnMgYW5ub3RhdGlvbiBkZWZpbml0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIHRvIGRlc2NyaWJlCiBhIGNvbmZpZ3VyYXRpb24gdHJlZS4KCggKAQgSAxMARQoJCgIICxIDEwBFCggKAQgSAxQAMwoJCgIIARIDFAAzCggKAQISAxYADwoJCgIDABIDGAAqCgoKAgQAEgQaABwBCgoKAwQAARIDGggRCgsKBAQAAgASAxsEEwoNCgUEAAIABBIEGwQaEwoMCgUEAAIABRIDGwQKCgwKBQQAAgABEgMbCw4KDAoFBAACAAMSAxsREgoKCgIFABIEHgAqAQoKCgMFAAESAx4FCworCgQFAAIAEgMhBA8aHiByZWFkLXdyaXRlLCBzdG9yZWQgYXR0cmlidXRlCgoMCgUFAAIAARIDIQQKCgwKBQUAAgACEgMhDQ4KSgoEBQACARIDJAQSGj0gcmVhZC1vbmx5IGZpZWxkLCBzdG9yZWQgd2l0aCB0aGUgbW9kZWwsIGNvdmVyZWQgYnkgaXRzIGhhc2gKCgwKBQUAAgEBEgMkBA0KDAoFBQACAQISAyQQEQqRAQoEBQACAhIDKAQSGoMBIEEgcmVhZC1vbmx5IGF0dHJpYnV0ZSB0aGF0IGlzIG5vdCBzdG9yZWQgaW4gdGhlIG1vZGVsLCBub3QgY292ZXJlZAogYnkgaXRzIGhhc2gsIGl0cyB2YWx1ZSBpcyBmaWxsZWQgcmVhbC10aW1lIHVwb24gZWFjaCByZXF1ZXN0LgoKDAoFBQACAgESAygEDQoMCgUFAAICAhIDKBARCgkKAQcSBCwAOQEKjAIKAgcAEgMyBCMagAIgSWYgcHJlc2VudCwgaXQgaW5kaWNhdGVzIHRoYXQgdGhpcyBmaWVsZCBpcyBzdG9yZWQgYXMgZXh0ZXJuYWwgY2hpbGQgbm9kZQogb3IgY2hpbGRyZW4gbm9kZXMgaW4gVm9sdGhhJ3MgaW50ZXJuYWwgY29uZmlndXJhdGlvbiB0cmVlLgogSWYgdGhlIGZpZWxkIGlzIGEgY29udGFpbmVyIGZpZWxkIGFuZCBpZiB0aGUgb3B0aW9uIHNwZWNpZmllcyBhIGtleQogdGhlIGNoaWxkIG9iamVjdHMgd2lsbCBiZSBhZGRyZXNzaWJsZSBieSB0aGF0IGtleS4KCgoKAwcAAhIDLAcjCgsKAwcABBIEMgQsJQoKCgMHAAYSAzIEDQoKCgMHAAESAzIOGAoKCgMHAAMSAzIbIgqcAgoCBwESAzgEHBqQAiBUaGlzIGFubm90YXRpb24gY2FuIGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCBhIGZpZWxkIGlzIHJlYWQtb25seSwKIGZyb20gdGhlIHBlcnNwZWN0aXZlIG9mIE5CSSBhY2Nlc3MuIEJhY2tlbmQgcGx1Z2lucyBhbmQgc3lzdGVtCiBpbnRlcm5hbHMgY2FuIHVwZGF0ZSB0aGUgZmllbGQgYnV0IHRoZSB1cGRhdGUgcmVxdWVzdHMgdGhyb3VnaCB0aGUKIE5CSSB3aWxsIGlnbm9yZSBmb3IgaW5zdGFuY2UgYSBmaWVsZCB0aGF0IGlzIG1hcmtlZCBhcyByZWFkLW9ubHkgKFJPKS4KCgoKAwcBAhIDLAcjCgsKAwcBBBIEOAQyIwoKCgMHAQYSAzgECgoKCgMHAQESAzgLEQoKCgMHAQMSAzgUG2IGcHJvdG8zCvIvCh9nb29nbGUvcHJvdG9idWYvdGltZXN0YW1wLnByb3RvEg9nb29nbGUucHJvdG9idWYiOwoJVGltZXN0YW1wEhgKB3NlY29uZHMYASABKANSB3NlY29uZHMSFAoFbmFub3MYAiABKAVSBW5hbm9zQn4KE2NvbS5nb29nbGUucHJvdG9idWZCDlRpbWVzdGFtcFByb3RvUAFaK2dpdGh1Yi5jb20vZ29sYW5nL3Byb3RvYnVmL3B0eXBlcy90aW1lc3RhbXD4AQGiAgNHUEKqAh5Hb29nbGUuUHJvdG9idWYuV2VsbEtub3duVHlwZXNK+C0KBxIFHgCIAQEKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAB8KCQoCCB8SAyMAHwoICgEIEgMkAEIKCQoCCAsSAyQAQgoICgEIEgMlACwKCQoCCAESAyUALAoICgEIEgMmAC8KCQoCCAgSAyYALwoICgEIEgMnACIKCQoCCAoSAycAIgoICgEIEgMoACEKCQoCCCQSAygAIQrxGwoCBAASBXwAiAEBGuMbIEEgVGltZXN0YW1wIHJlcHJlc2VudHMgYSBwb2ludCBpbiB0aW1lIGluZGVwZW5kZW50IG9mIGFueSB0aW1lIHpvbmUgb3IgbG9jYWwKIGNhbGVuZGFyLCBlbmNvZGVkIGFzIGEgY291bnQgb2Ygc2Vjb25kcyBhbmQgZnJhY3Rpb25zIG9mIHNlY29uZHMgYXQKIG5hbm9zZWNvbmQgcmVzb2x1dGlvbi4gVGhlIGNvdW50IGlzIHJlbGF0aXZlIHRvIGFuIGVwb2NoIGF0IFVUQyBtaWRuaWdodCBvbgogSmFudWFyeSAxLCAxOTcwLCBpbiB0aGUgcHJvbGVwdGljIEdyZWdvcmlhbiBjYWxlbmRhciB3aGljaCBleHRlbmRzIHRoZQogR3JlZ29yaWFuIGNhbGVuZGFyIGJhY2t3YXJkcyB0byB5ZWFyIG9uZS4KCiBBbGwgbWludXRlcyBhcmUgNjAgc2Vjb25kcyBsb25nLiBMZWFwIHNlY29uZHMgYXJlICJzbWVhcmVkIiBzbyB0aGF0IG5vIGxlYXAKIHNlY29uZCB0YWJsZSBpcyBuZWVkZWQgZm9yIGludGVycHJldGF0aW9uLCB1c2luZyBhIFsyNC1ob3VyIGxpbmVhcgogc21lYXJdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3RpbWUvc21lYXIpLgoKIFRoZSByYW5nZSBpcyBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvIDk5OTktMTItMzFUMjM6NTk6NTkuOTk5OTk5OTk5Wi4gQnkKIHJlc3RyaWN0aW5nIHRvIHRoYXQgcmFuZ2UsIHdlIGVuc3VyZSB0aGF0IHdlIGNhbiBjb252ZXJ0IHRvIGFuZCBmcm9tIFtSRkMKIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZGF0ZSBzdHJpbmdzLgoKICMgRXhhbXBsZXMKCiBFeGFtcGxlIDE6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gUE9TSVggYHRpbWUoKWAuCgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKHRpbWUoTlVMTCkpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3MoMCk7CgogRXhhbXBsZSAyOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFBPU0lYIGBnZXR0aW1lb2ZkYXkoKWAuCgogICAgIHN0cnVjdCB0aW1ldmFsIHR2OwogICAgIGdldHRpbWVvZmRheSgmdHYsIE5VTEwpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcyh0di50dl9zZWMpOwogICAgIHRpbWVzdGFtcC5zZXRfbmFub3ModHYudHZfdXNlYyAqIDEwMDApOwoKIEV4YW1wbGUgMzogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBXaW4zMiBgR2V0U3lzdGVtVGltZUFzRmlsZVRpbWUoKWAuCgogICAgIEZJTEVUSU1FIGZ0OwogICAgIEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKCZmdCk7CiAgICAgVUlOVDY0IHRpY2tzID0gKCgoVUlOVDY0KWZ0LmR3SGlnaERhdGVUaW1lKSA8PCAzMikgfCBmdC5kd0xvd0RhdGVUaW1lOwoKICAgICAvLyBBIFdpbmRvd3MgdGljayBpcyAxMDAgbmFub3NlY29uZHMuIFdpbmRvd3MgZXBvY2ggMTYwMS0wMS0wMVQwMDowMDowMFoKICAgICAvLyBpcyAxMTY0NDQ3MzYwMCBzZWNvbmRzIGJlZm9yZSBVbml4IGVwb2NoIDE5NzAtMDEtMDFUMDA6MDA6MDBaLgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXA7CiAgICAgdGltZXN0YW1wLnNldF9zZWNvbmRzKChJTlQ2NCkgKCh0aWNrcyAvIDEwMDAwMDAwKSAtIDExNjQ0NDczNjAwTEwpKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKChJTlQzMikgKCh0aWNrcyAlIDEwMDAwMDAwKSAqIDEwMCkpOwoKIEV4YW1wbGUgNDogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBKYXZhIGBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKWAuCgogICAgIGxvbmcgbWlsbGlzID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCk7CgogICAgIFRpbWVzdGFtcCB0aW1lc3RhbXAgPSBUaW1lc3RhbXAubmV3QnVpbGRlcigpLnNldFNlY29uZHMobWlsbGlzIC8gMTAwMCkKICAgICAgICAgLnNldE5hbm9zKChpbnQpICgobWlsbGlzICUgMTAwMCkgKiAxMDAwMDAwKSkuYnVpbGQoKTsKCgogRXhhbXBsZSA1OiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIGN1cnJlbnQgdGltZSBpbiBQeXRob24uCgogICAgIHRpbWVzdGFtcCA9IFRpbWVzdGFtcCgpCiAgICAgdGltZXN0YW1wLkdldEN1cnJlbnRUaW1lKCkKCiAjIEpTT04gTWFwcGluZwoKIEluIEpTT04gZm9ybWF0LCB0aGUgVGltZXN0YW1wIHR5cGUgaXMgZW5jb2RlZCBhcyBhIHN0cmluZyBpbiB0aGUKIFtSRkMgMzMzOV0oaHR0cHM6Ly93d3cuaWV0Zi5vcmcvcmZjL3JmYzMzMzkudHh0KSBmb3JtYXQuIFRoYXQgaXMsIHRoZQogZm9ybWF0IGlzICJ7eWVhcn0te21vbnRofS17ZGF5fVR7aG91cn06e21pbn06e3NlY31bLntmcmFjX3NlY31dWiIKIHdoZXJlIHt5ZWFyfSBpcyBhbHdheXMgZXhwcmVzc2VkIHVzaW5nIGZvdXIgZGlnaXRzIHdoaWxlIHttb250aH0sIHtkYXl9LAoge2hvdXJ9LCB7bWlufSwgYW5kIHtzZWN9IGFyZSB6ZXJvLXBhZGRlZCB0byB0d28gZGlnaXRzIGVhY2guIFRoZSBmcmFjdGlvbmFsCiBzZWNvbmRzLCB3aGljaCBjYW4gZ28gdXAgdG8gOSBkaWdpdHMgKGkuZS4gdXAgdG8gMSBuYW5vc2Vjb25kIHJlc29sdXRpb24pLAogYXJlIG9wdGlvbmFsLiBUaGUgIloiIHN1ZmZpeCBpbmRpY2F0ZXMgdGhlIHRpbWV6b25lICgiVVRDIik7IHRoZSB0aW1lem9uZQogaXMgcmVxdWlyZWQuIEEgcHJvdG8zIEpTT04gc2VyaWFsaXplciBzaG91bGQgYWx3YXlzIHVzZSBVVEMgKGFzIGluZGljYXRlZCBieQogIloiKSB3aGVuIHByaW50aW5nIHRoZSBUaW1lc3RhbXAgdHlwZSBhbmQgYSBwcm90bzMgSlNPTiBwYXJzZXIgc2hvdWxkIGJlCiBhYmxlIHRvIGFjY2VwdCBib3RoIFVUQyBhbmQgb3RoZXIgdGltZXpvbmVzIChhcyBpbmRpY2F0ZWQgYnkgYW4gb2Zmc2V0KS4KCiBGb3IgZXhhbXBsZSwgIjIwMTctMDEtMTVUMDE6MzA6MTUuMDFaIiBlbmNvZGVzIDE1LjAxIHNlY29uZHMgcGFzdAogMDE6MzAgVVRDIG9uIEphbnVhcnkgMTUsIDIwMTcuCgogSW4gSmF2YVNjcmlwdCwgb25lIGNhbiBjb252ZXJ0IGEgRGF0ZSBvYmplY3QgdG8gdGhpcyBmb3JtYXQgdXNpbmcgdGhlCiBzdGFuZGFyZCBbdG9JU09TdHJpbmcoKV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvRGF0ZS90b0lTT1N0cmluZykKIG1ldGhvZC4gSW4gUHl0aG9uLCBhIHN0YW5kYXJkIGBkYXRldGltZS5kYXRldGltZWAgb2JqZWN0IGNhbiBiZSBjb252ZXJ0ZWQKIHRvIHRoaXMgZm9ybWF0IHVzaW5nIFtgc3RyZnRpbWVgXShodHRwczovL2RvY3MucHl0aG9uLm9yZy8yL2xpYnJhcnkvdGltZS5odG1sI3RpbWUuc3RyZnRpbWUpCiB3aXRoIHRoZSB0aW1lIGZvcm1hdCBzcGVjICclWS0lbS0lZFQlSDolTTolUy4lZlonLiBMaWtld2lzZSwgaW4gSmF2YSwgb25lCiBjYW4gdXNlIHRoZSBKb2RhIFRpbWUncyBbYElTT0RhdGVUaW1lRm9ybWF0LmRhdGVUaW1lKClgXSgKIGh0dHA6Ly93d3cuam9kYS5vcmcvam9kYS10aW1lL2FwaWRvY3Mvb3JnL2pvZGEvdGltZS9mb3JtYXQvSVNPRGF0ZVRpbWVGb3JtYXQuaHRtbCNkYXRlVGltZSUyRCUyRAogKSB0byBvYnRhaW4gYSBmb3JtYXR0ZXIgY2FwYWJsZSBvZiBnZW5lcmF0aW5nIHRpbWVzdGFtcHMgaW4gdGhpcyBmb3JtYXQuCgoKCgoKAwQAARIDfAgRCp0BCgQEAAIAEgSBAQIUGo4BIFJlcHJlc2VudHMgc2Vjb25kcyBvZiBVVEMgdGltZSBzaW5jZSBVbml4IGVwb2NoCiAxOTcwLTAxLTAxVDAwOjAwOjAwWi4gTXVzdCBiZSBmcm9tIDAwMDEtMDEtMDFUMDA6MDA6MDBaIHRvCiA5OTk5LTEyLTMxVDIzOjU5OjU5WiBpbmNsdXNpdmUuCgoOCgUEAAIABBIFgQECfBMKDQoFBAACAAUSBIEBAgcKDQoFBAACAAESBIEBCA8KDQoFBAACAAMSBIEBEhMK5QEKBAQAAgESBIcBAhIa1gEgTm9uLW5lZ2F0aXZlIGZyYWN0aW9ucyBvZiBhIHNlY29uZCBhdCBuYW5vc2Vjb25kIHJlc29sdXRpb24uIE5lZ2F0aXZlCiBzZWNvbmQgdmFsdWVzIHdpdGggZnJhY3Rpb25zIG11c3Qgc3RpbGwgaGF2ZSBub24tbmVnYXRpdmUgbmFub3MgdmFsdWVzCiB0aGF0IGNvdW50IGZvcndhcmQgaW4gdGltZS4gTXVzdCBiZSBmcm9tIDAgdG8gOTk5LDk5OSw5OTkKIGluY2x1c2l2ZS4KCg8KBQQAAgEEEgaHAQKBARQKDQoFBAACAQUSBIcBAgcKDQoFBAACAQESBIcBCA0KDQoFBAACAQMSBIcBEBFiBnByb3RvMwrCEwobdm9sdGhhX3Byb3Rvcy9hZGFwdGVyLnByb3RvEgZ2b2x0aGEaGWdvb2dsZS9wcm90b2J1Zi9hbnkucHJvdG8aGHZvbHRoYV9wcm90b3MvbWV0YS5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90byJSCg1BZGFwdGVyQ29uZmlnEkEKEWFkZGl0aW9uYWxfY29uZmlnGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIQYWRkaXRpb25hbENvbmZpZyLaAwoHQWRhcHRlchIVCgJpZBgBIAEoCUIF6PbNHQFSAmlkEh0KBnZlbmRvchgCIAEoCUIF6PbNHQFSBnZlbmRvchIfCgd2ZXJzaW9uGAMgASgJQgXo9s0dAVIHdmVyc2lvbhItCgZjb25maWcYECABKAsyFS52b2x0aGEuQWRhcHRlckNvbmZpZ1IGY29uZmlnElIKFmFkZGl0aW9uYWxfZGVzY3JpcHRpb24YQCABKAsyFC5nb29nbGUucHJvdG9idWYuQW55QgXo9s0dAVIVYWRkaXRpb25hbERlc2NyaXB0aW9uEiwKEmxvZ2ljYWxfZGV2aWNlX2lkcxgEIAMoCVIQbG9naWNhbERldmljZUlkcxJJ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ZSB0eXBlCiBpdCBpcyB1c2VkIHRvIGFzc29jaWF0ZSBhIGRldmljZSB0byBhbiBhZGFwdGVyCgoNCgUEAQIKBBIELQQqGAoMCgUEAQIKBRIDLQQKCgwKBQQBAgoBEgMtCw8KDAoFBAECCgMSAy0SEwoKCgIEAhIEMQAzAQoKCgMEAgESAzEIEAoLCgQEAgIAEgMyBB8KDAoFBAICAAQSAzIEDAoMCgUEAgIABhIDMg0UCgwKBQQCAgABEgMyFRoKDAoFBAICAAMSAzIdHmIGcHJvdG8zCqoiChp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxIGY29tbW9uIhQKAklEEg4KAmlkGAEgASgJUgJpZCInCgNJRHMSIAoFaXRlbXMYASADKAsyCi5jb21tb24uSURSBWl0ZW1zImgKCkFkbWluU3RhdGUiWgoFVHlwZXMSCwoHVU5LTk9XThAAEhIKDlBSRVBST1ZJU0lPTkVEEAESCwoHRU5BQkxFRBACEgwKCERJU0FCTEVEEAMSFQoRRE9XTkxPQURJTkdfSU1BR0UQBCJ4CgpPcGVyU3RhdHVzImoKBVR5cGVzEgsKB1VOS05PV04QABIOCgpESVNDT1ZFUkVEEAESDgoKQUNUSVZBVElORxACEgsKB1RFU1RJTkcQAxIKCgZBQ1RJVkUQBBIKCgZGQUlMRUQQBRIPCgtSRUNPTkNJTElORxAGIkUKDUNvbm5lY3RTdGF0dXMiNAoFVHlwZXMSCwoHVU5LTk9XThAAEg8KC1VOUkVBQ0hBQkxFEAESDQoJUkVBQ0hBQkxFEAIi8gEKDU9wZXJhdGlvblJlc3ASPQoEY29kZRgBIAEoDjIpLmNvbW1vbi5PcGVyYXRpb25SZXNwLk9wZXJhdGlvblJldHVybkNvZGVSBGNvZGUSJwoPYWRkaXRpb25hbF9pbmZvGAIgASgJUg5hZGRpdGlvbmFsSW5mbyJ5ChNPcGVyYXRpb25SZXR1cm5Db2RlEhUKEU9QRVJBVElPTl9TVUNDRVNTEAASFQoRT1BFUkFUSU9OX0ZBSUxVUkUQARIZChVPUEVSQVRJT05fVU5TVVBQT1JURUQQAhIZChVPUEVSQVRJT05fSU5fUFJPR1JFU1MQAyIsCglWYWx1ZVR5cGUiHwoEVHlwZRIJCgVFTVBUWRAAEgwKCERJU1RB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ASgJSABSBXBhdGNoEjcKBmN1c3RvbRgIIAEoCzIdLmdvb2dsZS5hcGkuQ3VzdG9tSHR0cFBhdHRlcm5IAFIGY3VzdG9tEhIKBGJvZHkYByABKAlSBGJvZHkSIwoNcmVzcG9uc2VfYm9keRgMIAEoCVIMcmVzcG9uc2VCb2R5EkUKE2FkZGl0aW9uYWxfYmluZGluZ3MYCyADKAsyFC5nb29nbGUuYXBpLkh0dHBSdWxlUhJhZGRpdGlvbmFsQmluZGluZ3NCCQoHcGF0dGVybiI7ChFDdXN0b21IdHRwUGF0dGVybhISCgRraW5kGAEgASgJUgRraW5kEhIKBHBhdGgYAiABKAlSBHBhdGhCagoOY29tLmdvb2dsZS5hcGlCCUh0dHBQcm90b1ABWkFnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2FwaS9hbm5vdGF0aW9uczthbm5vdGF0aW9uc/gBAaICBEdBUElKl3QKBxIFDwD7AgEKvgQKAQwSAw8AEjKzBCBDb3B5cmlnaHQgMjAxOCBHb29nbGUgTExDLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCggKAQISAxEAEwoICgEIEgMTAB8KCQoCCB8SAxMAHwoICgEIEgMUAFgKCQoCCAsSAxQAWAoICgEIEgMVACIKCQoCCAoSAxUAIgoICgEIEgMWACoKCQoCCAgSAxYAKgoICgEIEgMXACcKCQoCCAESAxcAJwoICgEIEgMYACIKCQoCCCQSAxgAIgrNAQoCBAASBB0AKgEawAEgRGVmaW5lcyB0aGUgSFRUUCBjb25maWd1cmF0aW9uIGZvciBhbiBBUEkgc2VydmljZS4gSXQgY29udGFpbnMgYSBsaXN0IG9mCiBbSHR0cFJ1bGVdW2dvb2dsZS5hcGkuSHR0cFJ1bGVdLCBlYWNoIHNwZWNpZnlpbmcgdGhlIG1hcHBpbmcgb2YgYW4gUlBDIG1ldGhvZAogdG8gb25lIG9yIG1vcmUgSFRUUCBSRVNUIEFQSSBtZXRob2RzLgoKCgoDBAABEgMdCAwKogEKBAQAAgASAyECHhqUASBBIGxpc3Qgb2YgSFRUUCBjb25maWd1cmF0aW9uIHJ1bGVzIHRoYXQgYXBwbHkgdG8gaW5kaXZpZHVhbCBBUEkgbWV0aG9kcy4KCiAqKk5PVEU6KiogQWxsIHNlcnZpY2UgY29uZmlndXJhdGlvbiBydWxlcyBmb2xsb3cgImxhc3Qgb25lIHdpbnMiIG9yZGVyLgoKDAoFBAACAAQSAyECCgoMCgUEAAIABhIDIQsTCgwKBQQAAgABEgMhFBkKDAoFBAACAAMSAyEcHQqTAgoEBAACARIDKQIrGoUCIFdoZW4gc2V0IHRvIHRydWUsIFVSTCBwYXRoIHBhcm1ldGVycyB3aWxsIGJlIGZ1bGx5IFVSSS1kZWNvZGVkIGV4Y2VwdCBpbgogY2FzZXMgb2Ygc2luZ2xlIHNlZ21lbnQgbWF0Y2hlcyBpbiByZXNlcnZlZCBleHBhbnNpb24sIHdoZXJlICIlMkYiIHdpbGwgYmUKIGxlZnQgZW5jb2RlZC4KCiBUaGUgZGVmYXVsdCBiZWhhdmlvciBpcyB0byBub3QgZGVjb2RlIFJGQyA2NTcwIHJlc2VydmVkIGNoYXJhY3RlcnMgaW4gbXVsdGkKIHNlZ21lbnQgbWF0Y2hlcy4KCg0KBQQAAgEEEgQpAiEeCgwKBQQAAgEFEgMpAgYKDAoFBAACAQESAykHJgoMCgUEAAIBAxIDKSkqCrtTCgIEARIGvAIA8gIBGqxTICMgZ1JQQyBUcmFuc2NvZGluZwoKIGdSUEMgVHJhbnNjb2RpbmcgaXMgYSBmZWF0dXJlIGZvciBtYXBwaW5nIGJldHdlZW4gYSBnUlBDIG1ldGhvZCBhbmQgb25lIG9yCiBtb3JlIEhUVFAgUkVTVCBlbmRwb2ludHMuIEl0IGFsbG93cyBkZXZlbG9wZXJzIHRvIGJ1aWxkIGEgc2luZ2xlIEFQSSBzZXJ2aWNlCiB0aGF0IHN1cHBvcnRzIGJvdGggZ1JQQyBBUElzIGFuZCBSRVNUIEFQSXMuIE1hbnkgc3lzdGVtcywgaW5jbHVkaW5nIFtHb29nbGUKIEFQSXNdKGh0dHBzOi8vZ2l0aHViLmNvbS9nb29nbGVhcGlzL2dvb2dsZWFwaXMpLAogW0Nsb3VkIEVuZHBvaW50c10oaHR0cHM6Ly9jbG91ZC5nb29nbGUuY29tL2VuZHBvaW50cyksIFtnUlBDCiBHYXRld2F5XShodHRwczovL2dpdGh1Yi5jb20vZ3JwYy1lY29zeXN0ZW0vZ3JwYy1nYXRld2F5KSwKIGFuZCBbRW52b3ldKGh0dHBzOi8vZ2l0aHViLmNvbS9lbnZveXByb3h5L2Vudm95KSBwcm94eSBzdXBwb3J0IHRoaXMgZmVhdHVyZQogYW5kIHVzZSBpdCBmb3IgbGFyZ2Ugc2NhbGUgcHJvZHVjdGlvbiBzZXJ2aWNlcy4KCiBgSHR0cFJ1bGVgIGRlZmluZXMgdGhlIHNjaGVtYSBvZiB0aGUgZ1JQQy9SRVNUIG1hcHBpbmcuIFRoZSBtYXBwaW5nIHNwZWNpZmllcwogaG93IGRpZmZlcmVudCBwb3J0aW9ucyBvZiB0aGUgZ1JQQyByZXF1ZXN0IG1lc3NhZ2UgYXJlIG1hcHBlZCB0byB0aGUgVVJMCiBwYXRoLCBVUkwgcXVlcnkgcGFyYW1ldGVycywgYW5kIEhUVFAgcmVxdWVzdCBib2R5LiBJdCBhbHNvIGNvbnRyb2xzIGhvdyB0aGUKIGdSUEMgcmVzcG9uc2UgbWVzc2FnZSBpcyBtYXBwZWQgdG8gdGhlIEhUVFAgcmVzcG9uc2UgYm9keS4gYEh0dHBSdWxlYCBpcwogdHlwaWNhbGx5IHNwZWNpZmllZCBhcyBhbiBgZ29vZ2xlLmFwaS5odHRwYCBhbm5vdGF0aW9uIG9uIHRoZSBnUlBDIG1ldGhvZC4KCiBFYWNoIG1hcHBpbmcgc3BlY2lmaWVzIGEgVVJMIHBhdGggdGVtcGxhdGUgYW5kIGFuIEhUVFAgbWV0aG9kLiBUaGUgcGF0aAogdGVtcGxhdGUgbWF5IHJlZmVyIHRvIG9uZSBvciBtb3JlIGZpZWxkcyBpbiB0aGUgZ1JQQyByZXF1ZXN0IG1lc3NhZ2UsIGFzIGxvbmcKIGFzIGVhY2ggZmllbGQgaXMgYSBub24tcmVwZWF0ZWQgZmllbGQgd2l0aCBhIHByaW1pdGl2ZSAobm9uLW1lc3NhZ2UpIHR5cGUuCiBUaGUgcGF0aCB0ZW1wbGF0ZSBjb250cm9scyBob3cgZmllbGRzIG9mIHRoZSByZXF1ZXN0IG1lc3NhZ2UgYXJlIG1hcHBlZCB0bwogdGhlIFVSTCBwYXRoLgoKIEV4YW1wbGU6CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBHZXRNZXNzYWdlKEdldE1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICAgIGdldDogIi92MS97bmFtZT1tZXNzYWdlcy8qfSIKICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBHZXRNZXNzYWdlUmVxdWVzdCB7CiAgICAgICBzdHJpbmcgbmFtZSA9IDE7IC8vIE1hcHBlZCB0byBVUkwgcGF0aC4KICAgICB9CiAgICAgbWVzc2FnZSBNZXNzYWdlIHsKICAgICAgIHN0cmluZyB0ZXh0ID0gMTsgLy8gVGhlIHJlc291cmNlIGNvbnRlbnQuCiAgICAgfQoKIFRoaXMgZW5hYmxlcyBhbiBIVFRQIFJFU1QgdG8gZ1JQQyBtYXBwaW5nIGFzIGJlbG93OgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYEdFVCAvdjEvbWVzc2FnZXMvMTIzNDU2YCAgfCBgR2V0TWVzc2FnZShuYW1lOiAibWVzc2FnZXMvMTIzNDU2IilgCgogQW55IGZpZWxkcyBpbiB0aGUgcmVxdWVzdCBtZXNzYWdlIHdoaWNoIGFyZSBub3QgYm91bmQgYnkgdGhlIHBhdGggdGVtcGxhdGUKIGF1dG9tYXRpY2FsbHkgYmVjb21lIEhUVFAgcXVlcnkgcGFyYW1ldGVycyBpZiB0aGVyZSBpcyBubyBIVFRQIHJlcXVlc3QgYm9keS4KIEZvciBleGFtcGxlOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgR2V0TWVzc2FnZShHZXRNZXNzYWdlUmVxdWVzdCkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgICBnZXQ6Ii92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgR2V0TWVzc2FnZVJlcXVlc3QgewogICAgICAgbWVzc2FnZSBTdWJNZXNzYWdlIHsKICAgICAgICAgc3RyaW5nIHN1YmZpZWxkID0gMTsKICAgICAgIH0KICAgICAgIHN0cmluZyBtZXNzYWdlX2lkID0gMTsgLy8gTWFwcGVkIHRvIFVSTCBwYXRoLgogICAgICAgaW50NjQgcmV2aXNpb24gPSAyOyAgICAvLyBNYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlciBgcmV2aXNpb25gLgogICAgICAgU3ViTWVzc2FnZSBzdWIgPSAzOyAgICAvLyBNYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlciBgc3ViLnN1YmZpZWxkYC4KICAgICB9CgogVGhpcyBlbmFibGVzIGEgSFRUUCBKU09OIHRvIFJQQyBtYXBwaW5nIGFzIGJlbG93OgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYEdFVCAvdjEvbWVzc2FnZXMvMTIzNDU2P3JldmlzaW9uPTImc3ViLnN1YmZpZWxkPWZvb2AgfAogYEdldE1lc3NhZ2UobWVzc2FnZV9pZDogIjEyMzQ1NiIgcmV2aXNpb246IDIgc3ViOiBTdWJNZXNzYWdlKHN1YmZpZWxkOgogImZvbyIpKWAKCiBOb3RlIHRoYXQgZmllbGRzIHdoaWNoIGFyZSBtYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlcnMgbXVzdCBoYXZlIGEKIHByaW1pdGl2ZSB0eXBlIG9yIGEgcmVwZWF0ZWQgcHJpbWl0aXZlIHR5cGUgb3IgYSBub24tcmVwZWF0ZWQgbWVzc2FnZSB0eXBlLgogSW4gdGhlIGNhc2Ugb2YgYSByZXBlYXRlZCB0eXBlLCB0aGUgcGFyYW1ldGVyIGNhbiBiZSByZXBlYXRlZCBpbiB0aGUgVVJMCiBhcyBgLi4uP3BhcmFtPUEmcGFyYW09QmAuIEluIHRoZSBjYXNlIG9mIGEgbWVzc2FnZSB0eXBlLCBlYWNoIGZpZWxkIG9mIHRoZQogbWVzc2FnZSBpcyBtYXBwZWQgdG8gYSBzZXBhcmF0ZSBwYXJhbWV0ZXIsIHN1Y2ggYXMKIGAuLi4/Zm9vLmE9QSZmb28uYj1CJmZvby5jPUNgLgoKIEZvciBIVFRQIG1ldGhvZHMgdGhhdCBhbGxvdyBhIHJlcXVlc3QgYm9keSwgdGhlIGBib2R5YCBmaWVsZAogc3BlY2lmaWVzIHRoZSBtYXBwaW5nLiBDb25zaWRlciBhIFJFU1QgdXBkYXRlIG1ldGhvZCBvbiB0aGUKIG1lc3NhZ2UgcmVzb3VyY2UgY29sbGVjdGlvbjoKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIFVwZGF0ZU1lc3NhZ2UoVXBkYXRlTWVzc2FnZVJlcXVlc3QpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgIHBhdGNoOiAiL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgICBib2R5OiAibWVzc2FnZSIKICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBVcGRhdGVNZXNzYWdlUmVxdWVzdCB7CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7IC8vIG1hcHBlZCB0byB0aGUgVVJMCiAgICAgICBNZXNzYWdlIG1lc3NhZ2UgPSAyOyAgIC8vIG1hcHBlZCB0byB0aGUgYm9keQogICAgIH0KCiBUaGUgZm9sbG93aW5nIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZyBpcyBlbmFibGVkLCB3aGVyZSB0aGUKIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBKU09OIGluIHRoZSByZXF1ZXN0IGJvZHkgaXMgZGV0ZXJtaW5lZCBieQogcHJvdG9zIEpTT04gZW5jb2Rpbmc6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgUEFUQ0ggL3YxL21lc3NhZ2VzLzEyMzQ1NiB7ICJ0ZXh0IjogIkhpISIgfWAgfCBgVXBkYXRlTWVzc2FnZShtZXNzYWdlX2lkOgogIjEyMzQ1NiIgbWVzc2FnZSB7IHRleHQ6ICJIaSEiIH0pYAoKIFRoZSBzcGVjaWFsIG5hbWUgYCpgIGNhbiBiZSB1c2VkIGluIHRoZSBib2R5IG1hcHBpbmcgdG8gZGVmaW5lIHRoYXQKIGV2ZXJ5IGZpZWxkIG5vdCBib3VuZCBieSB0aGUgcGF0aCB0ZW1wbGF0ZSBzaG91bGQgYmUgbWFwcGVkIHRvIHRoZQogcmVxdWVzdCBib2R5LiAgVGhpcyBlbmFibGVzIHRoZSBmb2xsb3dpbmcgYWx0ZXJuYXRpdmUgZGVmaW5pdGlvbiBvZgogdGhlIHVwZGF0ZSBtZXRob2Q6CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBVcGRhdGVNZXNzYWdlKE1lc3NhZ2UpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgIHBhdGNoOiAiL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgICBib2R5OiAiKiIKICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBNZXNzYWdlIHsKICAgICAgIHN0cmluZyBtZXNzYWdlX2lkID0gMTsKICAgICAgIHN0cmluZyB0ZXh0ID0gMjsKICAgICB9CgoKIFRoZSBmb2xsb3dpbmcgSFRUUCBKU09OIHRvIFJQQyBtYXBwaW5nIGlzIGVuYWJsZWQ6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgUEFUQ0ggL3YxL21lc3NhZ2VzLzEyMzQ1NiB7ICJ0ZXh0IjogIkhpISIgfWAgfCBgVXBkYXRlTWVzc2FnZShtZXNzYWdlX2lkOgogIjEyMzQ1NiIgdGV4dDogIkhpISIpYAoKIE5vdGUgdGhhdCB3aGVuIHVzaW5nIGAqYCBpbiB0aGUgYm9keSBtYXBwaW5nLCBpdCBpcyBub3QgcG9zc2libGUgdG8KIGhhdmUgSFRUUCBwYXJhbWV0ZXJzLCBhcyBhbGwgZmllbGRzIG5vdCBib3VuZCBieSB0aGUgcGF0aCBlbmQgaW4KIHRoZSBib2R5LiBUaGlzIG1ha2VzIHRoaXMgb3B0aW9uIG1vcmUgcmFyZWx5IHVzZWQgaW4gcHJhY3RpY2Ugd2hlbgogZGVmaW5pbmcgUkVTVCBBUElzLiBUaGUgY29tbW9uIHVzYWdlIG9mIGAqYCBpcyBpbiBjdXN0b20gbWV0aG9kcwogd2hpY2ggZG9uJ3QgdXNlIHRoZSBVUkwgYXQgYWxsIGZvciB0cmFuc2ZlcnJpbmcgZGF0YS4KCiBJdCBpcyBwb3NzaWJsZSB0byBkZWZpbmUgbXVsdGlwbGUgSFRUUCBtZXRob2RzIGZvciBvbmUgUlBDIGJ5IHVzaW5nCiB0aGUgYGFkZGl0aW9uYWxfYmluZGluZ3NgIG9wdGlvbi4gRXhhbXBsZToKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIEdldE1lc3NhZ2UoR2V0TWVzc2FnZVJlcXVlc3QpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgIGdldDogIi92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgYWRkaXRpb25hbF9iaW5kaW5ncyB7CiAgICAgICAgICAgICBnZXQ6ICIvdjEvdXNlcnMve3VzZXJfaWR9L21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgICB9CiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgR2V0TWVzc2FnZVJlcXVlc3QgewogICAgICAgc3RyaW5nIG1lc3NhZ2VfaWQgPSAxOwogICAgICAgc3RyaW5nIHVzZXJfaWQgPSAyOwogICAgIH0KCiBUaGlzIGVuYWJsZXMgdGhlIGZvbGxvd2luZyB0d28gYWx0ZXJuYXRpdmUgSFRUUCBKU09OIHRvIFJQQyBtYXBwaW5nczoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBHRVQgL3YxL21lc3NhZ2VzLzEyMzQ1NmAgfCBgR2V0TWVzc2FnZShtZXNzYWdlX2lkOiAiMTIzNDU2IilgCiBgR0VUIC92MS91c2Vycy9tZS9tZXNzYWdlcy8xMjM0NTZgIHwgYEdldE1lc3NhZ2UodXNlcl9pZDogIm1lIiBtZXNzYWdlX2lkOgogIjEyMzQ1NiIpYAoKICMjIFJ1bGVzIGZvciBIVFRQIG1hcHBpbmcKCiAxLiBMZWFmIHJlcXVlc3QgZmllbGRzIChyZWN1cnNpdmUgZXhwYW5zaW9uIG5lc3RlZCBtZXNzYWdlcyBpbiB0aGUgcmVxdWVzdAogICAgbWVzc2FnZSkgYXJlIGNsYXNzaWZpZWQgaW50byB0aHJlZSBjYXRlZ29yaWVzOgogICAgLSBGaWVsZHMgcmVmZXJyZWQgYnkgdGhlIHBhdGggdGVtcGxhdGUuIFRoZXkgYXJlIHBhc3NlZCB2aWEgdGhlIFVSTCBwYXRoLgogICAgLSBGaWVsZHMgcmVmZXJyZWQgYnkgdGhlIFtIdHRwUnVsZS5ib2R5XVtnb29nbGUuYXBpLkh0dHBSdWxlLmJvZHldLiBUaGV5CiAgICBhcmUgcGFzc2VkIHZpYSB0aGUgSFRUUAogICAgICByZXF1ZXN0IGJvZHkuCiAgICAtIEFsbCBvdGhlciBmaWVsZHMgYXJlIHBhc3NlZCB2aWEgdGhlIFVSTCBxdWVyeSBwYXJhbWV0ZXJzLCBhbmQgdGhlCiAgICAgIHBhcmFtZXRlciBuYW1lIGlzIHRoZSBmaWVsZCBwYXRoIGluIHRoZSByZXF1ZXN0IG1lc3NhZ2UuIEEgcmVwZWF0ZWQKICAgICAgZmllbGQgY2FuIGJlIHJlcHJlc2VudGVkIGFzIG11bHRpcGxlIHF1ZXJ5IHBhcmFtZXRlcnMgdW5kZXIgdGhlIHNhbWUKICAgICAgbmFtZS4KICAyLiBJZiBbSHR0cFJ1bGUuYm9keV1bZ29vZ2xlLmFwaS5IdHRwUnVsZS5ib2R5XSBpcyAiKiIsIHRoZXJlIGlzIG5vIFVSTAogIHF1ZXJ5IHBhcmFtZXRlciwgYWxsIGZpZWxkcwogICAgIGFyZSBwYXNzZWQgdmlhIFVSTCBwYXRoIGFuZCBIVFRQIHJlcXVlc3QgYm9keS4KICAzLiBJZiBbSHR0cFJ1bGUuYm9keV1bZ29vZ2xlLmFwaS5IdHRwUnVsZS5ib2R5XSBpcyBvbWl0dGVkLCB0aGVyZSBpcyBubyBIVFRQCiAgcmVxdWVzdCBib2R5LCBhbGwKICAgICBmaWVsZHMgYXJlIHBhc3NlZCB2aWEgVVJMIHBhdGggYW5kIFVSTCBxdWVyeSBwYXJhbWV0ZXJzLgoKICMjIyBQYXRoIHRlbXBsYXRlIHN5bnRheAoKICAgICBUZW1wbGF0ZSA9ICIvIiBTZWdtZW50cyBbIFZlcmIgXSA7CiAgICAgU2VnbWVudHMgPSBTZWdtZW50IHsgIi8iIFNlZ21lbnQgfSA7CiAgICAgU2VnbWVudCAgPSAiKiIgfCAiKioiIHwgTElURVJBTCB8IFZhcmlhYmxlIDsKICAgICBWYXJpYWJsZSA9ICJ7IiBGaWVsZFBhdGggWyAiPSIgU2VnbWVudHMgXSAifSIgOwogICAgIEZpZWxkUGF0aCA9IElERU5UIHsgIi4iIElERU5UIH0gOwogICAgIFZlcmIgICAgID0gIjoiIExJVEVSQUwgOwoKIFRoZSBzeW50YXggYCpgIG1hdGNoZXMgYSBzaW5nbGUgVVJMIHBhdGggc2VnbWVudC4gVGhlIHN5bnRheCBgKipgIG1hdGNoZXMKIHplcm8gb3IgbW9yZSBVUkwgcGF0aCBzZWdtZW50cywgd2hpY2ggbXVzdCBiZSB0aGUgbGFzdCBwYXJ0IG9mIHRoZSBVUkwgcGF0aAogZXhjZXB0IHRoZSBgVmVyYmAuCgogVGhlIHN5bnRheCBgVmFyaWFibGVgIG1hdGNoZXMgcGFydCBvZiB0aGUgVVJMIHBhdGggYXMgc3BlY2lmaWVkIGJ5IGl0cwogdGVtcGxhdGUuIEEgdmFyaWFibGUgdGVtcGxhdGUgbXVzdCBub3QgY29udGFpbiBvdGhlciB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUKIG1hdGNoZXMgYSBzaW5nbGUgcGF0aCBzZWdtZW50LCBpdHMgdGVtcGxhdGUgbWF5IGJlIG9taXR0ZWQsIGUuZy4gYHt2YXJ9YAogaXMgZXF1aXZhbGVudCB0byBge3Zhcj0qfWAuCgogVGhlIHN5bnRheCBgTElURVJBTGAgbWF0Y2hlcyBsaXRlcmFsIHRleHQgaW4gdGhlIFVSTCBwYXRoLiBJZiB0aGUgYExJVEVSQUxgCiBjb250YWlucyBhbnkgcmVzZXJ2ZWQgY2hhcmFjdGVyLCBzdWNoIGNoYXJhY3RlcnMgc2hvdWxkIGJlIHBlcmNlbnQtZW5jb2RlZAogYmVmb3JlIHRoZSBtYXRjaGluZy4KCiBJZiBhIHZhcmlhYmxlIGNvbnRhaW5zIGV4YWN0bHkgb25lIHBhdGggc2VnbWVudCwgc3VjaCBhcyBgInt2YXJ9ImAgb3IKIGAie3Zhcj0qfSJgLCB3aGVuIHN1Y2ggYSB2YXJpYWJsZSBpcyBleHBhbmRlZCBpbnRvIGEgVVJMIHBhdGggb24gdGhlIGNsaWVudAogc2lkZSwgYWxsIGNoYXJhY3RlcnMgZXhjZXB0IGBbLV8ufjAtOWEtekEtWl1gIGFyZSBwZXJjZW50LWVuY29kZWQuIFRoZQogc2VydmVyIHNpZGUgZG9lcyB0aGUgcmV2ZXJzZSBkZWNvZGluZy4gU3VjaCB2YXJpYWJsZXMgc2hvdyB1cCBpbiB0aGUKIFtEaXNjb3ZlcnkKIERvY3VtZW50XShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9kaXNjb3ZlcnkvdjEvcmVmZXJlbmNlL2FwaXMpIGFzCiBge3Zhcn1gLgoKIElmIGEgdmFyaWFibGUgY29udGFpbnMgbXVsdGlwbGUgcGF0aCBzZWdtZW50cywgc3VjaCBhcyBgInt2YXI9Zm9vLyp9ImAKIG9yIGAie3Zhcj0qKn0iYCwgd2hlbiBzdWNoIGEgdmFyaWFibGUgaXMgZXhwYW5kZWQgaW50byBhIFVSTCBwYXRoIG9uIHRoZQogY2xpZW50IHNpZGUsIGFsbCBjaGFyYWN0ZXJzIGV4Y2VwdCBgWy1fLn4vMC05YS16QS1aXWAgYXJlIHBlcmNlbnQtZW5jb2RlZC4KIFRoZSBzZXJ2ZXIgc2lkZSBkb2VzIHRoZSByZXZlcnNlIGRlY29kaW5nLCBleGNlcHQgIiUyRiIgYW5kICIlMmYiIGFyZSBsZWZ0CiB1bmNoYW5nZWQuIFN1Y2ggdmFyaWFibGVzIHNob3cgdXAgaW4gdGhlCiBbRGlzY292ZXJ5CiBEb2N1bWVudF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vZGlzY292ZXJ5L3YxL3JlZmVyZW5jZS9hcGlzKSBhcwogYHsrdmFyfWAuCgogIyMgVXNpbmcgZ1JQQyBBUEkgU2VydmljZSBDb25maWd1cmF0aW9uCgogZ1JQQyBBUEkgU2VydmljZSBDb25maWd1cmF0aW9uIChzZXJ2aWNlIGNvbmZpZykgaXMgYSBjb25maWd1cmF0aW9uIGxhbmd1YWdlCiBmb3IgY29uZmlndXJpbmcgYSBnUlBDIHNlcnZpY2UgdG8gYmVjb21lIGEgdXNlci1mYWNpbmcgcHJvZHVjdC4gVGhlCiBzZXJ2aWNlIGNvbmZpZyBpcyBzaW1wbHkgdGhlIFlBTUwgcmVwcmVzZW50YXRpb24gb2YgdGhlIGBnb29nbGUuYXBpLlNlcnZpY2VgCiBwcm90byBtZXNzYWdlLgoKIEFzIGFuIGFsdGVybmF0aXZlIHRvIGFubm90YXRpbmcgeW91ciBwcm90byBmaWxlLCB5b3UgY2FuIGNvbmZpZ3VyZSBnUlBDCiB0cmFuc2NvZGluZyBpbiB5b3VyIHNlcnZpY2UgY29uZmlnIFlBTUwgZmlsZXMuIFlvdSBkbyB0aGlzIGJ5IHNwZWNpZnlpbmcgYQogYEh0dHBSdWxlYCB0aGF0IG1hcHMgdGhlIGdSUEMgbWV0aG9kIHRvIGEgUkVTVCBlbmRwb2ludCwgYWNoaWV2aW5nIHRoZSBzYW1lCiBlZmZlY3QgYXMgdGhlIHByb3RvIGFubm90YXRpb24uIFRoaXMgY2FuIGJlIHBhcnRpY3VsYXJseSB1c2VmdWwgaWYgeW91CiBoYXZlIGEgcHJvdG8gdGhhdCBpcyByZXVzZWQgaW4gbXVsdGlwbGUgc2VydmljZXMuIE5vdGUgdGhhdCBhbnkgdHJhbnNjb2RpbmcKIHNwZWNpZmllZCBpbiB0aGUgc2VydmljZSBjb25maWcgd2lsbCBvdmVycmlkZSBhbnkgbWF0Y2hpbmcgdHJhbnNjb2RpbmcKIGNvbmZpZ3VyYXRpb24gaW4gdGhlIHByb3RvLgoKIEV4YW1wbGU6CgogICAgIGh0dHA6CiAgICAgICBydWxlczoKICAgICAgICAgIyBTZWxlY3RzIGEgZ1JQQyBtZXRob2QgYW5kIGFwcGxpZXMgSHR0cFJ1bGUgdG8gaXQuCiAgICAgICAgIC0gc2VsZWN0b3I6IGV4YW1wbGUudjEuTWVzc2FnaW5nLkdldE1lc3NhZ2UKICAgICAgICAgICBnZXQ6IC92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0ve3N1Yi5zdWJmaWVsZH0KCiAjIyBTcGVjaWFsIG5vdGVzCgogV2hlbiBnUlBDIFRyYW5zY29kaW5nIGlzIHVzZWQgdG8gbWFwIGEgZ1JQQyB0byBKU09OIFJFU1QgZW5kcG9pbnRzLCB0aGUKIHByb3RvIHRvIEpTT04gY29udmVyc2lvbiBtdXN0IGZvbGxvdyB0aGUgW3Byb3RvMwogc3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy9kb2NzL3Byb3RvMyNqc29uKS4KCiBXaGlsZSB0aGUgc2luZ2xlIHNlZ21lbnQgdmFyaWFibGUgZm9sbG93cyB0aGUgc2VtYW50aWNzIG9mCiBbUkZDIDY1NzBdKGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NTcwKSBTZWN0aW9uIDMuMi4yIFNpbXBsZSBTdHJpbmcKIEV4cGFuc2lvbiwgdGhlIG11bHRpIHNlZ21lbnQgdmFyaWFibGUgKipkb2VzIG5vdCoqIGZvbGxvdyBSRkMgNjU3MCBTZWN0aW9uCiAzLjIuMyBSZXNlcnZlZCBFeHBhbnNpb24uIFRoZSByZWFzb24gaXMgdGhhdCB0aGUgUmVzZXJ2ZWQgRXhwYW5zaW9uCiBkb2VzIG5vdCBleHBhbmQgc3BlY2lhbCBjaGFyYWN0ZXJzIGxpa2UgYD9gIGFuZCBgI2AsIHdoaWNoIHdvdWxkIGxlYWQKIHRvIGludmFsaWQgVVJMcy4gQXMgdGhlIHJlc3VsdCwgZ1JQQyBUcmFuc2NvZGluZyB1c2VzIGEgY3VzdG9tIGVuY29kaW5nCiBmb3IgbXVsdGkgc2VnbWVudCB2YXJpYWJsZXMuCgogVGhlIHBhdGggdmFyaWFibGVzICoqbXVzdCBub3QqKiByZWZlciB0byBhbnkgcmVwZWF0ZWQgb3IgbWFwcGVkIGZpZWxkLAogYmVjYXVzZSBjbGllbnQgbGlicmFyaWVzIGFyZSBub3QgY2FwYWJsZSBvZiBoYW5kbGluZyBzdWNoIHZhcmlhYmxlIGV4cGFuc2lvbi4KCiBUaGUgcGF0aCB2YXJpYWJsZXMgKiptdXN0IG5vdCoqIGNhcHR1cmUgdGhlIGxlYWRpbmcgIi8iIGNoYXJhY3Rlci4gVGhlIHJlYXNvbgogaXMgdGhhdCB0aGUgbW9zdCBjb21tb24gdXNlIGNhc2UgInt2YXJ9IiBkb2VzIG5vdCBjYXB0dXJlIHRoZSBsZWFkaW5nICIvIgogY2hhcmFjdGVyLiBGb3IgY29uc2lzdGVuY3ksIGFsbCBwYXRoIHZhcmlhYmxlcyBtdXN0IHNoYXJlIHRoZSBzYW1lIGJlaGF2aW9yLgoKIFJlcGVhdGVkIG1lc3NhZ2UgZmllbGRzIG11c3Qgbm90IGJlIG1hcHBlZCB0byBVUkwgcXVlcnkgcGFyYW1ldGVycywgYmVjYXVzZQogbm8gY2xpZW50IGxpYnJhcnkgY2FuIHN1cHBvcnQgc3VjaCBjb21wbGljYXRlZCBtYXBwaW5nLgoKIElmIGFuIEFQSSBuZWVkcyB0byB1c2UgYSBKU09OIGFycmF5IGZvciByZXF1ZXN0IG9yIHJlc3BvbnNlIGJvZHksIGl0IGNhbiBtYXAKIHRoZSByZXF1ZXN0IG9yIHJlc3BvbnNlIGJvZHkgdG8gYSByZXBlYXRlZCBmaWVsZC4gSG93ZXZlciwgc29tZSBnUlBDCiBUcmFuc2NvZGluZyBpbXBsZW1lbnRhdGlvbnMgbWF5IG5vdCBzdXBwb3J0IHRoaXMgZmVhdHVyZS4KCgsKAwQBARIEvAIIEAqPAQoEBAECABIEwQICFhqAASBTZWxlY3RzIGEgbWV0aG9kIHRvIHdoaWNoIHRoaXMgcnVsZSBhcHBsaWVzLgoKIFJlZmVyIHRvIFtzZWxlY3Rvcl1bZ29vZ2xlLmFwaS5Eb2N1bWVudGF0aW9uUnVsZS5zZWxlY3Rvcl0gZm9yIHN5bnRheAogZGV0YWlscy4KCg8KBQQBAgAEEgbBAgK8AhIKDQoFBAECAAUSBMECAggKDQoFBAECAAESBMECCREKDQoFBAECAAMSBMECFBUK0AEKBAQBCAASBsYCAtwCAxq/ASBEZXRlcm1pbmVzIHRoZSBVUkwgcGF0dGVybiBpcyBtYXRjaGVkIGJ5IHRoaXMgcnVsZXMuIFRoaXMgcGF0dGVybiBjYW4gYmUKIHVzZWQgd2l0aCBhbnkgb2YgdGhlIHtnZXR8cHV0fHBvc3R8ZGVsZXRlfHBhdGNofSBtZXRob2RzLiBBIGN1c3RvbSBtZXRob2QKIGNhbiBiZSBkZWZpbmVkIHVzaW5nIHRoZSAnY3VzdG9tJyBmaWVsZC4KCg0KBQQBCAABEgTGAggPClwKBAQBAgESBMkCBBMaTiBNYXBzIHRvIEhUVFAgR0VULiBVc2VkIGZvciBsaXN0aW5nIGFuZCBnZXR0aW5nIGluZm9ybWF0aW9uIGFib3V0CiByZXNvdXJjZXMuCgoNCgUEAQIBBRIEyQIECgoNCgUEAQIBARIEyQILDgoNCgUEAQIBAxIEyQIREgpACgQEAQICEgTMAgQTGjIgTWFwcyB0byBIVFRQIFBVVC4gVXNlZCBmb3IgcmVwbGFjaW5nIGEgcmVzb3VyY2UuCgoNCgUEAQICBRIEzAIECgoNCgUEAQICARIEzAILDgoNCgUEAQICAxIEzAIREgpYCgQEAQIDEgTPAgQUGkogTWFwcyB0byBIVFRQIFBPU1QuIFVzZWQgZm9yIGNyZWF0aW5nIGEgcmVzb3VyY2Ugb3IgcGVyZm9ybWluZyBhbiBhY3Rpb24uCgoNCgUEAQIDBRIEzwIECgoNCgUEAQIDARIEzwILDwoNCgUEAQIDAxIEzwISEwpCCgQEAQIEEgTSAgQWGjQgTWFwcyB0byBIVFRQIERFTEVURS4gVXNlZCBmb3IgZGVsZXRpbmcgYSByZXNvdXJjZS4KCg0KBQQBAgQFEgTSAgQKCg0KBQQBAgQBEgTSAgsRCg0KBQQBAgQDEgTSAhQVCkEKBAQBAgUSBNUCBBUaMyBNYXBzIHRvIEhUVFAgUEFUQ0guIFVzZWQgZm9yIHVwZGF0aW5nIGEgcmVzb3VyY2UuCgoNCgUEAQIFBRIE1QIECgoNCgUEAQIFARIE1QILEAoNCgUEAQIFAxIE1QITFAqYAgoEBAECBhIE2wIEIRqJAiBUaGUgY3VzdG9tIHBhdHRlcm4gaXMgdXNlZCBmb3Igc3BlY2lmeWluZyBhbiBIVFRQIG1ldGhvZCB0aGF0IGlzIG5vdAogaW5jbHVkZWQgaW4gdGhlIGBwYXR0ZXJuYCBmaWVsZCwgc3VjaCBhcyBIRUFELCBvciAiKiIgdG8gbGVhdmUgdGhlCiBIVFRQIG1ldGhvZCB1bnNwZWNpZmllZCBmb3IgdGhpcyBydWxlLiBUaGUgd2lsZC1jYXJkIHJ1bGUgaXMgdXNlZnVsCiBmb3Igc2VydmljZXMgdGhhdCBwcm92aWRlIGNvbnRlbnQgdG8gV2ViIChIVE1MKSBjbGllbnRzLgoKDQoFBAECBgYSBNsCBBUKDQoFBAECBgESBNsCFhwKDQoFBAECBgMSBNsCHyAKxAIKBAQBAgcSBOQCAhIatQIgVGhlIG5hbWUgb2YgdGhlIHJlcXVlc3QgZmllbGQgd2hvc2UgdmFsdWUgaXMgbWFwcGVkIHRvIHRoZSBIVFRQIHJlcXVlc3QKIGJvZHksIG9yIGAqYCBmb3IgbWFwcGluZyBhbGwgcmVxdWVzdCBmaWVsZHMgbm90IGNhcHR1cmVkIGJ5IHRoZSBwYXRoCiBwYXR0ZXJuIHRvIHRoZSBIVFRQIGJvZHksIG9yIG9taXR0ZWQgZm9yIG5vdCBoYXZpbmcgYW55IEhUVFAgcmVxdWVzdCBib2R5LgoKIE5PVEU6IHRoZSByZWZlcnJlZCBmaWVsZCBtdXN0IGJlIHByZXNlbnQgYXQgdGhlIHRvcC1sZXZlbCBvZiB0aGUgcmVxdWVzdAogbWVzc2FnZSB0eXBlLgoKDwoFBAECBwQSBuQCAtwCAwoNCgUEAQIHBRIE5AICCAoNCgUEAQIHARIE5AIJDQoNCgUEAQIHAxIE5AIQEQqZAgoEBAECCBIE7AICHBqKAiBPcHRpb25hbC4gVGhlIG5hbWUgb2YgdGhlIHJlc3BvbnNlIGZpZWxkIHdob3NlIHZhbHVlIGlzIG1hcHBlZCB0byB0aGUgSFRUUAogcmVzcG9uc2UgYm9keS4gV2hlbiBvbWl0dGVkLCB0aGUgZW50aXJlIHJlc3BvbnNlIG1lc3NhZ2Ugd2lsbCBiZSB1c2VkCiBhcyB0aGUgSFRUUCByZXNwb25zZSBib2R5LgoKIE5PVEU6IFRoZSByZWZlcnJlZCBmaWVsZCBtdXN0IGJlIHByZXNlbnQgYXQgdGhlIHRvcC1sZXZlbCBvZiB0aGUgcmVzcG9uc2UKIG1lc3NhZ2UgdHlwZS4KCg8KBQQBAggEEgbsAgLkAhIKDQoFBAECCAUSBOwCAggKDQoFBAECCAESBOwCCRYKDQoFBAECCAMSBOwCGRsKuwEKBAQBAgkSBPECAi0arAEgQWRkaXRpb25hbCBIVFRQIGJpbmRpbmdzIGZvciB0aGUgc2VsZWN0b3IuIE5lc3RlZCBiaW5kaW5ncyBtdXN0CiBub3QgY29udGFpbiBhbiBgYWRkaXRpb25hbF9iaW5kaW5nc2AgZmllbGQgdGhlbXNlbHZlcyAodGhhdCBpcywKIHRoZSBuZXN0aW5nIG1heSBvbmx5IGJlIG9uZSBsZXZlbCBkZWVwKS4KCg0KBQQBAgkEEgTxAgIKCg0KBQQBAgkGEgTxAgsTCg0KBQQBAgkBEgTxAhQnCg0KBQQBAgkDEgTxAiosCkcKAgQCEgb1AgD7AgEaOSBBIGN1c3RvbSBwYXR0ZXJuIGlzIHVzZWQgZm9yIGRlZmluaW5nIGN1c3RvbSBIVFRQIHZlcmIuCgoLCgMEAgESBPUCCBkKMgoEBAICABIE9wICEhokIFRoZSBuYW1lIG9mIHRoaXMgY3VzdG9tIEhUVFAgdmVyYi4KCg8KBQQCAgAEEgb3AgL1AhsKDQoFBAICAAUSBPcCAggKDQoFBAICAAESBPcCCQ0KDQoFBAICAAMSBPcCEBEKNQoEBAICARIE+gICEhonIFRoZSBwYXRoIG1hdGNoZWQgYnkgdGhpcyBjdXN0b20gdmVyYi4KCg8KBQQCAgEEEgb6AgL3AhIKDQoFBAICAQUSBPoCAggKDQoFBAICAQESBPoCCQ0KDQoFBAICAQMSBPoCEBFiBnByb3RvMwrnCAocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxIKZ29vZ2xlLmFwaRoVZ29vZ2xlL2FwaS9odHRwLnByb3RvGiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90bzpLCgRodHRwEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYsMq8IiABKAsyFC5nb29nbGUuYXBpLkh0dHBSdWxlUgRodHRwQm4KDmNvbS5nb29nbGUuYXBpQhBBbm5vdGF0aW9uc1Byb3RvUAFaQWdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYXBpL2Fubm90YXRpb25zO2Fubm90YXRpb25zogIER0FQSUq8BgoGEgQOAB4BCsIECgEMEgMOABIytwQgQ29weXJpZ2h0IChjKSAyMDE1LCBHb29nbGUgSW5jLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCAoBAhIDEAATCgkKAgMAEgMSAB8KCQoCAwESAxMAKgoICgEIEgMVAFgKCQoCCAsSAxUAWAoICgEIEgMWACIKCQoCCAoSAxYAIgoICgEIEgMXADEKCQoCCAgSAxcAMQoICgEIEgMYACcKCQoCCAESAxgAJwoICgEIEgMZACIKCQoCCCQSAxkAIgoJCgEHEgQbAB4BChwKAgcAEgMdAhsaESBTZWUgYEh0dHBSdWxlYC4KCgoKAwcAAhIDGwckCgsKAwcABBIEHQIbJgoKCgMHAAYSAx0CCgoKCgMHAAESAx0LDwoKCgMHAAMSAx0SGmIGcHJvdG8zCoWCCAofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxILb3BlbmZsb3dfMTMaHGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8iYwoKb2ZwX2hlYWRlchIYCgd2ZXJzaW9uGAEgASgNUgd2ZXJzaW9uEikKBHR5cGUYAiABKA4yFS5vcGVuZmxvd18xMy5vZnBfdHlwZVIEdHlwZRIQCgN4aWQYAyABKA1SA3hpZCKrAQoVb2ZwX2hlbGxvX2VsZW1faGVhZGVyEjQKBHR5cGUYASABKA4yIC5vcGVuZmxvd18xMy5vZnBfaGVsbG9fZWxlbV90eXBlUgR0eXBlElEKDXZlcnNpb25iaXRtYXAYAiABKAsyKS5vcGVuZmxvd18xMy5vZnBfaGVsbG9fZWxlbV92ZXJzaW9uYml0bWFwSABSDXZlcnNpb25iaXRtYXBCCQoHZWxlbWVudCI4ChxvZnBfaGVsbG9fZWxlbV92ZXJzaW9uYml0bWFwEhgKB2JpdG1hcHMYAiADKA1SB2JpdG1hcHMiSwoJb2ZwX2hlbGxvEj4KCGVsZW1lbnRzGAEgAygLMiIub3BlbmZsb3dfMTMub2ZwX2hlbGxvX2VsZW1faGVhZGVyUghlbGVtZW50cyJNChFvZnBfc3dpdGNoX2NvbmZpZxIUCgVmbGFncxgBIAEoDVIFZmxhZ3MSIgoNbWlzc19zZW5kX2xlbhgCIAEoDVILbWlzc1NlbmRMZW4iQgoNb2ZwX3RhYmxlX21vZBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIWCgZjb25maWcYAiABKA1SBmNvbmZpZyKgAgoIb2ZwX3BvcnQSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhcKB2h3X2FkZHIYAiADKA1SBmh3QWRkchISCgRuYW1lGAMgASgJUgRuYW1lEhYKBmNvbmZpZxgEIAEoDVIGY29uZmlnEhQKBXN0YXRlGAUgASgNUgVzdGF0ZRISCgRjdXJyGAYgASgNUgRjdXJyEh4KCmFkdmVydGlzZWQYByABKA1SCmFkdmVydGlzZWQSHAoJc3VwcG9ydGVkGAggASgNUglzdXBwb3J0ZWQSEgoEcGVlchgJIAEoDVIEcGVlchIdCgpjdXJyX3NwZWVkGAogASgNUgljdXJyU3BlZWQSGwoJbWF4X3NwZWVkGAsgASgNUghtYXhTcGVlZCK1AQoTb2ZwX3N3aXRjaF9mZWF0dXJlcxIfCgtkYXRhcGF0aF9pZBgBIAEoBFIKZGF0YXBhdGhJZBIbCgluX2J1ZmZlcnMYAiABKA1SCG5CdWZmZXJzEhkKCG5fdGFibGVzGAMgASgNUgduVGFibGVzEiEKDGF1eGlsaWFyeV9pZBgEIAEoDVILYXV4aWxpYXJ5SWQSIgoMY2FwYWJpbGl0aWVzGAUgASgNUgxjYXBhYmlsaXRpZXMicgoPb2ZwX3BvcnRfc3RhdHVzEjQKBnJlYXNvbhgBIAEoDjIcLm9wZW5mbG93XzEzLm9mcF9wb3J0X3JlYXNvblIGcmVhc29uEikKBGRlc2MYAiABKAsyFS5vcGVuZmxvd18xMy5vZnBfcG9ydFIEZGVzYyKKAQoMb2ZwX3BvcnRfbW9kEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIXCgdod19hZGRyGAIgAygNUgZod0FkZHISFgoGY29uZmlnGAMgASgNUgZjb25maWcSEgoEbWFzaxgEIAEoDVIEbWFzaxIcCglhZHZlcnRpc2UYBSABKA1SCWFkdmVydGlzZSJ3CglvZnBfbWF0Y2gSLwoEdHlwZRgBIAEoDjIbLm9wZW5mbG93XzEzLm9mcF9tYXRjaF90eXBlUgR0eXBlEjkKCm94bV9maWVsZHMYAiADKAsyGi5vcGVuZmxvd18xMy5vZnBfb3htX2ZpZWxkUglveG1GaWVsZHMi6gEKDW9mcF9veG1fZmllbGQSNwoJb3htX2NsYXNzGAEgASgOMhoub3BlbmZsb3dfMTMub2ZwX294bV9jbGFzc1IIb3htQ2xhc3MSPQoJb2ZiX2ZpZWxkGAQgASgLMh4ub3BlbmZsb3dfMTMub2ZwX294bV9vZmJfZmllbGRIAFIIb2ZiRmllbGQSWAoSZXhwZXJpbWVudGVyX2ZpZWxkGAUgASgLMicub3BlbmZsb3dfMTMub2ZwX294bV9leHBlcmltZW50ZXJfZmllbGRIAFIRZXhwZXJpbWVudGVyRmllbGRCBwoFZmllbGQi1w4KEW9mcF9veG1fb2ZiX2ZpZWxkEjQKBHR5cGUYASABKA4yIC5vcGVuZmxvd18xMy5veG1fb2ZiX2ZpZWxkX3R5cGVzUgR0eXBlEhkKCGhhc19tYXNrGAIgASgIUgdoYXNNYXNrEhQKBHBvcnQYAyABKA1IAFIEcG9ydBIlCg1waHlzaWNhbF9wb3J0GAQgASgNSABSDHBoeXNpY2FsUG9ydBInCg50YWJsZV9tZXRhZGF0YRgFIAEoBEgAUg10YWJsZU1ldGFkYXRhEhkKB2V0aF9kc3QYBiABKAxIAFIGZXRoRHN0EhkKB2V0aF9zcmMYByABKAxIAFIGZXRoU3JjEhsKCGV0aF90eXBlGAggASgNSABSB2V0aFR5cGUSGwoIdmxhbl92aWQYCSABKA1IAFIHdmxhblZpZBIbCgh2bGFuX3BjcBgKIAEoDUgAUgd2bGFuUGNwEhkKB2lwX2RzY3AYCyABKA1IAFIGaXBEc2NwEhcKBmlwX2VjbhgMIAEoDUgAUgVpcEVjbhIbCghpcF9wcm90bxgNIAEoDUgAUgdpcFByb3RvEhsKCGlwdjRfc3JjGA4gASgNSABSB2lwdjRTcmMSGwoIaXB2NF9kc3QYDyABKA1IAFIHaXB2NERzdBIZCgd0Y3Bfc3JjGBAgASgNSABSBnRjcFNyYxIZCgd0Y3BfZHN0GBEgASgNSABSBnRjcERzdBIZCgd1ZHBfc3JjGBIgASgNSABSBnVkcFNyYxIZCgd1ZHBfZHN0GBMgASgNSABSBnVkcERzdBIbCghzY3RwX3NyYxgUIAEoDUgAUgdzY3RwU3JjEhsKCHNjdHBfZHN0GBUgASgNSABSB3NjdHBEc3QSIQoLaWNtcHY0X3R5cGUYFiABKA1IAFIKaWNtcHY0VHlwZRIhCgtpY21wdjRfY29kZRgXIAEoDUgAUgppY21wdjRDb2RlEhcKBmFycF9vcBgYIAEoDUgAUgVhcnBPcBIZCgdhcnBfc3BhGBkgASgNSABSBmFycFNwYRIZCgdhcnBfdHBhGBogASgNSABSBmFycFRwYRIZCgdhcnBfc2hhGBsgASgMSABSBmFycFNoYRIZCgdhcnBfdGhhGBwgASgMSABSBmFycFRoYRIbCghpcHY2X3NyYxgdIAEoDEgAUgdpcHY2U3JjEhsKCGlwdjZfZHN0GB4gASgMSABSB2lwdjZEc3QSIQoLaXB2Nl9mbGFiZWwYHyABKA1IAFIKaXB2NkZsYWJlbBIhCgtpY21wdjZfdHlwZRggIAEoDUgAUgppY21wdjZUeXBlEiEKC2ljbXB2Nl9jb2RlGCEgASgNSABSCmljbXB2NkNvZGUSJgoOaXB2Nl9uZF90YXJnZXQYIiABKAxIAFIMaXB2Nk5kVGFyZ2V0EiAKC2lwdjZfbmRfc3NsGCMgASgMSABSCWlwdjZOZFNzbBIgCgtpcHY2X25kX3RsbBgkIAEoDEgAUglpcHY2TmRUbGwSHwoKbXBsc19sYWJlbBglIAEoDUgAUgltcGxzTGFiZWwSGQoHbXBsc190YxgmIAEoDUgAUgZtcGxzVGMSGwoIbXBsc19ib3MYJyABKA1IAFIHbXBsc0JvcxIbCghwYmJfaXNpZBgoIAEoDUgAUgdwYmJJc2lkEh0KCXR1bm5lbF9pZBgpIAEoBEgAUgh0dW5uZWxJZBIhCgtpcHY2X2V4dGhkchgqIAEoDUgAUgppcHY2RXh0aGRyEjAKE3RhYmxlX21ldGFkYXRhX21hc2sYaSABKARIAVIRdGFibGVNZXRhZGF0YU1hc2sSIgoMZXRoX2RzdF9tYXNrGGogASgMSAFSCmV0aERzdE1hc2sSIgoMZXRoX3NyY19tYXNrGGsgASgMSAFSCmV0aFNyY01hc2sSJAoNdmxhbl92aWRfbWFzaxhtIAEoDUgBUgt2bGFuVmlkTWFzaxIkCg1pcHY0X3NyY19tYXNrGHIgASgNSAFSC2lwdjRTcmNNYXNrEiQKDWlwdjRfZHN0X21hc2sYcyABKA1IAVILaXB2NERzdE1hc2sSIgoMYXJwX3NwYV9tYXNrGH0gASgNSAFSCmFycFNwYU1hc2sSIgoMYXJwX3RwYV9tYXNrGH4gASgNSAFSCmFycFRwYU1hc2sSJQoNaXB2Nl9zcmNfbWFzaxiBASABKAxIAVILaXB2NlNyY01hc2sSJQoNaXB2Nl9kc3RfbWFzaxiCASABKAxIAVILaXB2NkRzdE1hc2sSKwoQaXB2Nl9mbGFiZWxfbWFzaxiDASABKA1IAVIOaXB2NkZsYWJlbE1hc2sSJQoNcGJiX2lzaWRfbWFzaxiMASABKA1IAVILcGJiSXNpZE1hc2sSJwoOdHVubmVsX2lkX21hc2sYjQEgASgESAFSDHR1bm5lbElkTWFzaxIrChBpcHY2X2V4dGhkcl9tYXNrGI4BIAEoDUgBUg5pcHY2RXh0aGRyTWFza0IHCgV2YWx1ZUIGCgRtYXNrIl8KGm9mcF9veG1fZXhwZXJpbWVudGVyX2ZpZWxkEh0KCm94bV9oZWFkZXIYASABKA1SCW94bUhlYWRlchIiCgxleHBlcmltZW50ZXIYAiABKA1SDGV4cGVyaW1lbnRlciKyBAoKb2ZwX2FjdGlvbhIwCgR0eXBlGAEgASgOMhwub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl90eXBlUgR0eXBlEjgKBm91dHB1dBgCIAEoCzIeLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fb3V0cHV0SABSBm91dHB1dBI9CghtcGxzX3R0bBgDIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fbXBsc190dGxIAFIHbXBsc1R0bBIyCgRwdXNoGAQgASgLMhwub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9wdXNoSABSBHB1c2gSPQoIcG9wX21wbHMYBSABKAsyIC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX3BvcF9tcGxzSABSB3BvcE1wbHMSNQoFZ3JvdXAYBiABKAsyHS5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX2dyb3VwSABSBWdyb3VwEjcKBm53X3R0bBgHIAEoCzIeLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fbndfdHRsSABSBW53VHRsEkAKCXNldF9maWVsZBgIIAEoCzIhLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fc2V0X2ZpZWxkSABSCHNldEZpZWxkEkoKDGV4cGVyaW1lbnRlchgJIAEoCzIkLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIICgZhY3Rpb24iQAoRb2ZwX2FjdGlvbl9vdXRwdXQSEgoEcG9ydBgBIAEoDVIEcG9ydBIXCgdtYXhfbGVuGAIgASgNUgZtYXhMZW4iMAoTb2ZwX2FjdGlvbl9tcGxzX3R0bBIZCghtcGxzX3R0bBgBIAEoDVIHbXBsc1R0bCIvCg9vZnBfYWN0aW9uX3B1c2gSHAoJZXRoZXJ0eXBlGAEgASgNUglldGhlcnR5cGUiMwoTb2ZwX2FjdGlvbl9wb3BfbXBscxIcCglldGhlcnR5cGUYASABKA1SCWV0aGVydHlwZSItChBvZnBfYWN0aW9uX2dyb3VwEhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkIioKEW9mcF9hY3Rpb25fbndfdHRsEhUKBm53X3R0bBgBIAEoDVIFbndUdGwiSAoUb2ZwX2FjdGlvbl9zZXRfZmllbGQSMAoFZmllbGQYASABKAsyGi5vcGVuZmxvd18xMy5vZnBfb3htX2ZpZWxkUgVmaWVsZCJRChdvZnBfYWN0aW9uX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAIgASgMUgRkYXRhIpwDCg9vZnBfaW5zdHJ1Y3Rpb24SEgoEdHlwZRgBIAEoDVIEdHlwZRJICgpnb3RvX3RhYmxlGAIgASgLMicub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX2dvdG9fdGFibGVIAFIJZ290b1RhYmxlElQKDndyaXRlX21ldGFkYXRhGAMgASgLMisub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX3dyaXRlX21ldGFkYXRhSABSDXdyaXRlTWV0YWRhdGESQAoHYWN0aW9ucxgEIAEoCzIkLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvbl9hY3Rpb25zSABSB2FjdGlvbnMSOgoFbWV0ZXIYBSABKAsyIi5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fbWV0ZXJIAFIFbWV0ZXISTwoMZXhwZXJpbWVudGVyGAYgASgLMikub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX2V4cGVyaW1lbnRlckgAUgxleHBlcmltZW50ZXJCBgoEZGF0YSI3ChpvZnBfaW5zdHJ1Y3Rpb25fZ290b190YWJsZRIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZCJhCh5vZnBfaW5zdHJ1Y3Rpb25fd3JpdGVfbWV0YWRhdGESGgoIbWV0YWRhdGEYASABKARSCG1ldGFkYXRhEiMKDW1ldGFkYXRhX21hc2sYAiABKARSDG1ldGFkYXRhTWFzayJMChdvZnBfaW5zdHJ1Y3Rpb25fYWN0aW9ucxIxCgdhY3Rpb25zGAEgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucyIyChVvZnBfaW5zdHJ1Y3Rpb25fbWV0ZXISGQoIbWV0ZXJfaWQYASABKA1SB21ldGVySWQiVgocb2ZwX2luc3RydWN0aW9uX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAIgASgMUgRkYXRhItwDCgxvZnBfZmxvd19tb2QSFgoGY29va2llGAEgASgEUgZjb29raWUSHwoLY29va2llX21hc2sYAiABKARSCmNvb2tpZU1hc2sSGQoIdGFibGVfaWQYAyABKA1SB3RhYmxlSWQSOwoHY29tbWFuZBgEIAEoDjIhLm9wZW5mbG93XzEzLm9mcF9mbG93X21vZF9jb21tYW5kUgdjb21tYW5kEiEKDGlkbGVfdGltZW91dBgFIAEoDVILaWRsZVRpbWVvdXQSIQoMaGFyZF90aW1lb3V0GAYgASgNUgtoYXJkVGltZW91dBIaCghwcmlvcml0eRgHIAEoDVIIcHJpb3JpdHkSGwoJYnVmZmVyX2lkGAggASgNUghidWZmZXJJZBIZCghvdXRfcG9ydBgJIAEoDVIHb3V0UG9ydBIbCglvdXRfZ3JvdXAYCiABKA1SCG91dEdyb3VwEhQKBWZsYWdzGAsgASgNUgVmbGFncxIsCgVtYXRjaBgMIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gSQAoMaW5zdHJ1Y3Rpb25zGA0gAygLMhwub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uUgxpbnN0cnVjdGlvbnMilwEKCm9mcF9idWNrZXQSFgoGd2VpZ2h0GAEgASgNUgZ3ZWlnaHQSHQoKd2F0Y2hfcG9ydBgCIAEoDVIJd2F0Y2hQb3J0Eh8KC3dhdGNoX2dyb3VwGAMgASgNUgp3YXRjaEdyb3VwEjEKB2FjdGlvbnMYBCADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zIswBCg1vZnBfZ3JvdXBfbW9kEjwKB2NvbW1hbmQYASABKA4yIi5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfbW9kX2NvbW1hbmRSB2NvbW1hbmQSLwoEdHlwZRgCIAEoDjIbLm9wZW5mbG93XzEzLm9mcF9ncm91cF90eXBlUgR0eXBlEhkKCGdyb3VwX2lkGAMgASgNUgdncm91cElkEjEKB2J1Y2tldHMYBCADKAsyFy5vcGVuZmxvd18xMy5vZnBfYnVja2V0UgdidWNrZXRzIo0BCg5vZnBfcGFja2V0X291dBIbCglidWZmZXJfaWQYASABKA1SCGJ1ZmZlcklkEhcKB2luX3BvcnQYAiABKA1SBmluUG9ydBIxCgdhY3Rpb25zGAMgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucxISCgRkYXRhGAQgASgMUgRkYXRhItwBCg1vZnBfcGFja2V0X2luEhsKCWJ1ZmZlcl9pZBgBIAEoDVIIYnVmZmVySWQSOQoGcmVhc29uGAIgASgOMiEub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9pbl9yZWFzb25SBnJlYXNvbhIZCgh0YWJsZV9pZBgDIAEoDVIHdGFibGVJZBIWCgZjb29raWUYBCABKARSBmNvb2tpZRIsCgVtYXRjaBgFIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gSEgoEZGF0YRgGIAEoDFIEZGF0YSKdAwoQb2ZwX2Zsb3dfcmVtb3ZlZBIWCgZjb29raWUYASABKARSBmNvb2tpZRIaCghwcmlvcml0eRgCIAEoDVIIcHJpb3JpdHkSPAoGcmVhc29uGAMgASgOMiQub3BlbmZsb3dfMTMub2ZwX2Zsb3dfcmVtb3ZlZF9yZWFzb25SBnJlYXNvbhIZCgh0YWJsZV9pZBgEIAEoDVIHdGFibGVJZBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxIhCgxpZGxlX3RpbWVvdXQYByABKA1SC2lkbGVUaW1lb3V0EiEKDGhhcmRfdGltZW91dBgIIAEoDVILaGFyZFRpbWVvdXQSIQoMcGFja2V0X2NvdW50GAkgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAogASgEUglieXRlQ291bnQSLAoFbWF0Y2gYeSABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoItwCChVvZnBfbWV0ZXJfYmFuZF9oZWFkZXISNAoEdHlwZRgBIAEoDjIgLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX3R5cGVSBHR5cGUSEgoEcmF0ZRgCIAEoDVIEcmF0ZRIdCgpidXJzdF9zaXplGAMgASgNUglidXJzdFNpemUSNgoEZHJvcBgEIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2Ryb3BIAFIEZHJvcBJKCgtkc2NwX3JlbWFyaxgFIAEoCzInLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2RzY3BfcmVtYXJrSABSCmRzY3BSZW1hcmsSTgoMZXhwZXJpbWVudGVyGAYgASgLMigub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIGCgRkYXRhIhUKE29mcF9tZXRlcl9iYW5kX2Ryb3AiOwoab2ZwX21ldGVyX2JhbmRfZHNjcF9yZW1hcmsSHQoKcHJlY19sZXZlbBgBIAEoDVIJcHJlY0xldmVsIkEKG29mcF9tZXRlcl9iYW5kX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlciK4AQoNb2ZwX21ldGVyX21vZBI8Cgdjb21tYW5kGAEgASgOMiIub3BlbmZsb3dfMTMub2ZwX21ldGVyX21vZF9jb21tYW5kUgdjb21tYW5kEhQKBWZsYWdzGAIgASgNUgVmbGFncxIZCghtZXRlcl9pZBgDIAEoDVIHbWV0ZXJJZBI4CgViYW5kcxgEIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2hlYWRlclIFYmFuZHMifAoNb2ZwX2Vycm9yX21zZxIvCgZoZWFkZXIYASABKAsyFy5vcGVuZmxvd18xMy5vZnBfaGVhZGVyUgZoZWFkZXISEgoEdHlwZRgCIAEoDVIEdHlwZRISCgRjb2RlGAMgASgNUgRjb2RlEhIKBGRhdGEYBCABKAxSBGRhdGEigwEKGm9mcF9lcnJvcl9leHBlcmltZW50ZXJfbXNnEhIKBHR5cGUYASABKA1SBHR5cGUSGQoIZXhwX3R5cGUYAiABKA1SB2V4cFR5cGUSIgoMZXhwZXJpbWVudGVyGAMgASgNUgxleHBlcmltZW50ZXISEgoEZGF0YRgEIAEoDFIEZGF0YSJ2ChVvZnBfbXVsdGlwYXJ0X3JlcXVlc3QSMwoEdHlwZRgBIAEoDjIfLm9wZW5mbG93XzEzLm9mcF9tdWx0aXBhcnRfdHlwZVIEdHlwZRIUCgVmbGFncxgCIAEoDVIFZmxhZ3MSEgoEYm9keRgDIAEoDFIEYm9keSJ0ChNvZnBfbXVsdGlwYXJ0X3JlcGx5EjMKBHR5cGUYASABKA4yHy5vcGVuZmxvd18xMy5vZnBfbXVsdGlwYXJ0X3R5cGVSBHR5cGUSFAoFZmxhZ3MYAiABKA1SBWZsYWdzEhIKBGJvZHkYAyABKAxSBGJvZHkijwEKCG9mcF9kZXNjEhkKCG1mcl9kZXNjGAEgASgJUgdtZnJEZXNjEhcKB2h3X2Rlc2MYAiABKAlSBmh3RGVzYxIXCgdzd19kZXNjGAMgASgJUgZzd0Rlc2MSHQoKc2VyaWFsX251bRgEIAEoCVIJc2VyaWFsTnVtEhcKB2RwX2Rlc2MYBSABKAlSBmRwRGVzYyLSAQoWb2ZwX2Zsb3dfc3RhdHNfcmVxdWVzdBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIZCghvdXRfcG9ydBgCIAEoDVIHb3V0UG9ydBIbCglvdXRfZ3JvdXAYAyABKA1SCG91dEdyb3VwEhYKBmNvb2tpZRgEIAEoBFIGY29va2llEh8KC2Nvb2tpZV9tYXNrGAUgASgEUgpjb29raWVNYXNrEiwKBW1hdGNoGAYgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaCLFAwoOb2ZwX2Zsb3dfc3RhdHMSDgoCaWQYDiABKARSAmlkEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEiEKDGR1cmF0aW9uX3NlYxgCIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgDIAEoDVIMZHVyYXRpb25Oc2VjEhoKCHByaW9yaXR5GAQgASgNUghwcmlvcml0eRIhCgxpZGxlX3RpbWVvdXQYBSABKA1SC2lkbGVUaW1lb3V0EiEKDGhhcmRfdGltZW91dBgGIAEoDVILaGFyZFRpbWVvdXQSFAoFZmxhZ3MYByABKA1SBWZsYWdzEhYKBmNvb2tpZRgIIAEoBFIGY29va2llEiEKDHBhY2tldF9jb3VudBgJIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgKIAEoBFIJYnl0ZUNvdW50EiwKBW1hdGNoGAwgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaBJACgxpbnN0cnVjdGlvbnMYDSADKAsyHC5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25SDGluc3RydWN0aW9ucyLXAQobb2ZwX2FnZ3JlZ2F0ZV9zdGF0c19yZXF1ZXN0EhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEhkKCG91dF9wb3J0GAIgASgNUgdvdXRQb3J0EhsKCW91dF9ncm91cBgDIAEoDVIIb3V0R3JvdXASFgoGY29va2llGAQgASgEUgZjb29raWUSHwoLY29va2llX21hc2sYBSABKARSCmNvb2tpZU1hc2sSLAoFbWF0Y2gYBiABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoInwKGW9mcF9hZ2dyZWdhdGVfc3RhdHNfcmVwbHkSIQoMcGFja2V0X2NvdW50GAEgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAIgASgEUglieXRlQ291bnQSHQoKZmxvd19jb3VudBgDIAEoDVIJZmxvd0NvdW50Iu0DChpvZnBfdGFibGVfZmVhdHVyZV9wcm9wZXJ0eRI8CgR0eXBlGAEgASgOMigub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF90eXBlUgR0eXBlElYKDGluc3RydWN0aW9ucxgCIAEoCzIwLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfaW5zdHJ1Y3Rpb25zSABSDGluc3RydWN0aW9ucxJSCgtuZXh0X3RhYmxlcxgDIAEoCzIvLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfbmV4dF90YWJsZXNIAFIKbmV4dFRhYmxlcxJHCgdhY3Rpb25zGAQgASgLMisub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9hY3Rpb25zSABSB2FjdGlvbnMSOwoDb3htGAUgASgLMicub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9veG1IAFIDb3htElYKDGV4cGVyaW1lbnRlchgGIAEoCzIwLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIHCgV2YWx1ZSJnCiNvZnBfdGFibGVfZmVhdHVyZV9wcm9wX2luc3RydWN0aW9ucxJACgxpbnN0cnVjdGlvbnMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25SDGluc3RydWN0aW9ucyJKCiJvZnBfdGFibGVfZmVhdHVyZV9wcm9wX25leHRfdGFibGVzEiQKDm5leHRfdGFibGVfaWRzGAEgAygNUgxuZXh0VGFibGVJZHMiUwoeb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9hY3Rpb25zEjEKB2FjdGlvbnMYASADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zIjUKGm9mcF90YWJsZV9mZWF0dXJlX3Byb3Bfb3htEhcKB294bV9pZHMYAyADKA1SBm94bUlkcyKRAQojb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9leHBlcmltZW50ZXISIgoMZXhwZXJpbWVudGVyGAIgASgNUgxleHBlcmltZW50ZXISGQoIZXhwX3R5cGUYAyABKA1SB2V4cFR5cGUSKwoRZXhwZXJpbWVudGVyX2RhdGEYBCADKA1SEGV4cGVyaW1lbnRlckRhdGEikwIKEm9mcF90YWJsZV9mZWF0dXJlcxIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBISCgRuYW1lGAIgASgJUgRuYW1lEiUKDm1ldGFkYXRhX21hdGNoGAMgASgEUg1tZXRhZGF0YU1hdGNoEiUKDm1ldGFkYXRhX3dyaXRlGAQgASgEUg1tZXRhZGF0YVdyaXRlEhYKBmNvbmZpZxgFIAEoDVIGY29uZmlnEh8KC21heF9lbnRyaWVzGAYgASgNUgptYXhFbnRyaWVzEkcKCnByb3BlcnRpZXMYByADKAsyJy5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wZXJ0eVIKcHJvcGVydGllcyKXAQoPb2ZwX3RhYmxlX3N0YXRzEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEiEKDGFjdGl2ZV9jb3VudBgCIAEoDVILYWN0aXZlQ291bnQSIQoMbG9va3VwX2NvdW50GAMgASgEUgtsb29rdXBDb3VudBIjCg1tYXRjaGVkX2NvdW50GAQgASgEUgxtYXRjaGVkQ291bnQiMQoWb2ZwX3BvcnRfc3RhdHNfcmVxdWVzdBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8i3QMKDm9mcF9wb3J0X3N0YXRzEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIdCgpyeF9wYWNrZXRzGAIgASgEUglyeFBhY2tldHMSHQoKdHhfcGFja2V0cxgDIAEoBFIJdHhQYWNrZXRzEhkKCHJ4X2J5dGVzGAQgASgEUgdyeEJ5dGVzEhkKCHR4X2J5dGVzGAUgASgEUgd0eEJ5dGVzEh0KCnJ4X2Ryb3BwZWQYBiABKARSCXJ4RHJvcHBlZBIdCgp0eF9kcm9wcGVkGAcgASgEUgl0eERyb3BwZWQSGwoJcnhfZXJyb3JzGAggASgEUghyeEVycm9ycxIbCgl0eF9lcnJvcnMYCSABKARSCHR4RXJyb3JzEiAKDHJ4X2ZyYW1lX2VychgKIAEoBFIKcnhGcmFtZUVychIeCgtyeF9vdmVyX2VychgLIAEoBFIJcnhPdmVyRXJyEhwKCnJ4X2NyY19lcnIYDCABKARSCHJ4Q3JjRXJyEh4KCmNvbGxpc2lvbnMYDSABKARSCmNvbGxpc2lvbnMSIQoMZHVyYXRpb25fc2VjGA4gASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGA8gASgNUgxkdXJhdGlvbk5zZWMiNAoXb2ZwX2dyb3VwX3N0YXRzX3JlcXVlc3QSGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQiVgoSb2ZwX2J1Y2tldF9jb3VudGVyEiEKDHBhY2tldF9jb3VudBgBIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgCIAEoBFIJYnl0ZUNvdW50IpcCCg9vZnBfZ3JvdXBfc3RhdHMSGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQSGwoJcmVmX2NvdW50GAIgASgNUghyZWZDb3VudBIhCgxwYWNrZXRfY291bnQYAyABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYBCABKARSCWJ5dGVDb3VudBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxJCCgxidWNrZXRfc3RhdHMYByADKAsyHy5vcGVuZmxvd18xMy5vZnBfYnVja2V0X2NvdW50ZXJSC2J1Y2tldFN0YXRzIo8BCg5vZnBfZ3JvdXBfZGVzYxIvCgR0eXBlGAEgASgOMhsub3BlbmZsb3dfMTMub2ZwX2dyb3VwX3R5cGVSBHR5cGUSGQoIZ3JvdXBfaWQYAiABKA1SB2dyb3VwSWQSMQoHYnVja2V0cxgDIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9idWNrZXRSB2J1Y2tldHMidgoPb2ZwX2dyb3VwX2VudHJ5Ei8KBGRlc2MYASABKAsyGy5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfZGVzY1IEZGVzYxIyCgVzdGF0cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9ncm91cF9zdGF0c1IFc3RhdHMihwEKEm9mcF9ncm91cF9mZWF0dXJlcxIUCgV0eXBlcxgBIAEoDVIFdHlwZXMSIgoMY2FwYWJpbGl0aWVzGAIgASgNUgxjYXBhYmlsaXRpZXMSHQoKbWF4X2dyb3VwcxgDIAMoDVIJbWF4R3JvdXBzEhgKB2FjdGlvbnMYBCADKA1SB2FjdGlvbnMiOAobb2ZwX21ldGVyX211bHRpcGFydF9yZXF1ZXN0EhkKCG1ldGVyX2lkGAEgASgNUgdtZXRlcklkImoKFG9mcF9tZXRlcl9iYW5kX3N0YXRzEioKEXBhY2tldF9iYW5kX2NvdW50GAEgASgEUg9wYWNrZXRCYW5kQ291bnQSJgoPYnl0ZV9iYW5kX2NvdW50GAIgASgEUg1ieXRlQmFuZENvdW50IqECCg9vZnBfbWV0ZXJfc3RhdHMSGQoIbWV0ZXJfaWQYASABKA1SB21ldGVySWQSHQoKZmxvd19jb3VudBgCIAEoDVIJZmxvd0NvdW50EiYKD3BhY2tldF9pbl9jb3VudBgDIAEoBFINcGFja2V0SW5Db3VudBIiCg1ieXRlX2luX2NvdW50GAQgASgEUgtieXRlSW5Db3VudBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxJACgpiYW5kX3N0YXRzGAcgAygLMiEub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfc3RhdHNSCWJhbmRTdGF0cyJ9ChBvZnBfbWV0ZXJfY29uZmlnEhQKBWZsYWdzGAEgASgNUgVmbGFncxIZCghtZXRlcl9pZBgCIAEoDVIHbWV0ZXJJZBI4CgViYW5kcxgDIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2hlYWRlclIFYmFuZHMirgEKEm9mcF9tZXRlcl9mZWF0dXJlcxIbCgltYXhfbWV0ZXIYASABKA1SCG1heE1ldGVyEh0KCmJhbmRfdHlwZXMYAiABKA1SCWJhbmRUeXBlcxIiCgxjYXBhYmlsaXRpZXMYAyABKA1SDGNhcGFiaWxpdGllcxIbCgltYXhfYmFuZHMYBCABKA1SCG1heEJhbmRzEhsKCW1heF9jb2xvchgFIAEoDVIIbWF4Q29sb3IifAoPb2ZwX21ldGVyX2VudHJ5EjUKBmNvbmZpZxgBIAEoCzIdLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9jb25maWdSBmNvbmZpZxIyCgVzdGF0cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9zdGF0c1IFc3RhdHMidgohb2ZwX2V4cGVyaW1lbnRlcl9tdWx0aXBhcnRfaGVhZGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhkKCGV4cF90eXBlGAIgASgNUgdleHBUeXBlEhIKBGRhdGEYAyABKAxSBGRhdGEibAoXb2ZwX2V4cGVyaW1lbnRlcl9oZWFkZXISIgoMZXhwZXJpbWVudGVyGAEgASgNUgxleHBlcmltZW50ZXISGQoIZXhwX3R5cGUYAiABKA1SB2V4cFR5cGUSEgoEZGF0YRgDIAEoDFIEZGF0YSJFChVvZnBfcXVldWVfcHJvcF9oZWFkZXISGgoIcHJvcGVydHkYASABKA1SCHByb3BlcnR5EhAKA2xlbhgCIAEoDVIDbGVuInIKF29mcF9xdWV1ZV9wcm9wX21pbl9yYXRlEkMKC3Byb3BfaGVhZGVyGAEgASgLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wSGVhZGVyEhIKBHJhdGUYAiABKA1SBHJhdGUicgoXb2ZwX3F1ZXVlX3Byb3BfbWF4X3JhdGUSQwoLcHJvcF9oZWFkZXIYASABKAsyIi5vcGVuZmxvd18xMy5vZnBfcXVldWVfcHJvcF9oZWFkZXJSCnByb3BIZWFkZXISEgoEcmF0ZRgCIAEoDVIEcmF0ZSKaAQobb2ZwX3F1ZXVlX3Byb3BfZXhwZXJpbWVudGVyEkMKC3Byb3BfaGVhZGVyGAEgASgLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wSGVhZGVyEiIKDGV4cGVyaW1lbnRlchgCIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYAyABKAxSBGRhdGEihQEKEG9mcF9wYWNrZXRfcXVldWUSGQoIcXVldWVfaWQYASABKA1SB3F1ZXVlSWQSEgoEcG9ydBgCIAEoDVIEcG9ydBJCCgpwcm9wZXJ0aWVzGAQgAygLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wZXJ0aWVzIjIKHG9mcF9xdWV1ZV9nZXRfY29uZmlnX3JlcXVlc3QSEgoEcG9ydBgBIAEoDVIEcG9ydCJnChpvZnBfcXVldWVfZ2V0X2NvbmZpZ19yZXBseRISCgRwb3J0GAEgASgNUgRwb3J0EjUKBnF1ZXVlcxgCIAMoCzIdLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfcXVldWVSBnF1ZXVlcyJFChRvZnBfYWN0aW9uX3NldF9xdWV1ZRISCgR0eXBlGAEgASgNUgR0eXBlEhkKCHF1ZXVlX2lkGAMgASgNUgdxdWV1ZUlkIk0KF29mcF9xdWV1ZV9zdGF0c19yZXF1ZXN0EhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIZCghxdWV1ZV9pZBgCIAEoDVIHcXVldWVJZCLkAQoPb2ZwX3F1ZXVlX3N0YXRzEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIZCghxdWV1ZV9pZBgCIAEoDVIHcXVldWVJZBIZCgh0eF9ieXRlcxgDIAEoBFIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGAQgASgEUgl0eFBhY2tldHMSGwoJdHhfZXJyb3JzGAUgASgEUgh0eEVycm9ycxIhCgxkdXJhdGlvbl9zZWMYBiABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYByABKA1SDGR1cmF0aW9uTnNlYyJtChBvZnBfcm9sZV9yZXF1ZXN0EjQKBHJvbGUYASABKA4yIC5vcGVuZmxvd18xMy5vZnBfY29udHJvbGxlcl9yb2xlUgRyb2xlEiMKDWdlbmVyYXRpb25faWQYAiABKARSDGdlbmVyYXRpb25JZCKOAQoQb2ZwX2FzeW5jX2NvbmZpZxIkCg5wYWNrZXRfaW5fbWFzaxgBIAMoDVIMcGFja2V0SW5NYXNrEigKEHBvcnRfc3RhdHVzX21hc2sYAiADKA1SDnBvcnRTdGF0dXNNYXNrEioKEWZsb3dfcmVtb3ZlZF9tYXNrGAMgAygNUg9mbG93UmVtb3ZlZE1hc2siawoOTWV0ZXJNb2RVcGRhdGUSDgoCaWQYASABKAlSAmlkEjcKCW1ldGVyX21vZBgCIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9tb2RSCG1ldGVyTW9kEhAKA3hpZBgDIAEoDVIDeGlkIlAKD01ldGVyU3RhdHNSZXBseRI9CgttZXRlcl9zdGF0cxgBIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9zdGF0c1IKbWV0ZXJTdGF0cyJpCg9GbG93VGFibGVVcGRhdGUSDgoCaWQYASABKAlSAmlkEjQKCGZsb3dfbW9kGAIgASgLMhkub3BlbmZsb3dfMTMub2ZwX2Zsb3dfbW9kUgdmbG93TW9kEhAKA3hpZBgDIAEoDVIDeGlkInEKFEZsb3dHcm91cFRhYmxlVXBkYXRlEg4KAmlkGAEgASgJUgJpZBI3Cglncm91cF9tb2QYAiABKAsyGi5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfbW9kUghncm91cE1vZBIQCgN4aWQYAyABKA1SA3hpZCI6CgVGbG93cxIxCgVpdGVtcxgBIAMoCzIbLm9wZW5mbG93XzEzLm9mcF9mbG93X3N0YXRzUgVpdGVtcyI8CgZNZXRlcnMSMgoFaXRlbXMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfZW50cnlSBWl0ZW1zIkAKCkZsb3dHcm91cHMSMgoFaXRlbXMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfZW50cnlSBWl0ZW1zImkKC0Zsb3dDaGFuZ2VzEikKBnRvX2FkZBgBIAEoCzISLm9wZW5mbG93XzEzLkZsb3dzUgV0b0FkZBIvCgl0b19yZW1vdmUYAiABKAsyEi5vcGVuZmxvd18xMy5GbG93c1IIdG9SZW1vdmUirgEKEEZsb3dHcm91cENoYW5nZXMSLgoGdG9fYWRkGAEgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IFdG9BZGQSNAoJdG9fcmVtb3ZlGAIgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IIdG9SZW1vdmUSNAoJdG9fdXBkYXRlGAMgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IIdG9VcGRhdGUiUwoIUGFja2V0SW4SDgoCaWQYASABKAlSAmlkEjcKCXBhY2tldF9pbhgCIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfaW5SCHBhY2tldEluIlcKCVBhY2tldE91dBIOCgJpZBgBIAEoCVICaWQSOgoKcGFja2V0X291dBgCIAEoCzIbLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfb3V0UglwYWNrZXRPdXQimwEKC0NoYW5nZUV2ZW50Eg4KAmlkGAEgASgJUgJpZBI/Cgtwb3J0X3N0YXR1cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9wb3J0X3N0YXR1c0gAUgpwb3J0U3RhdHVzEjIKBWVycm9yGAMgASgLMhoub3BlbmZsb3dfMTMub2ZwX2Vycm9yX21zZ0gAUgVlcnJvckIHCgVldmVudCrVAQoLb2ZwX3BvcnRfbm8SEAoMT0ZQUF9JTlZBTElEEAASEAoIT0ZQUF9NQVgQgP7//wcSFAoMT0ZQUF9JTl9QT1JUEPj///8HEhIKCk9GUFBfVEFCTEUQ+f///wcSEwoLT0ZQUF9OT1JNQUwQ+v///wcSEgoKT0ZQUF9GTE9PRBD7////BxIQCghPRlBQX0FMTBD8////BxIXCg9PRlBQX0NPTlRST0xMRVIQ/f///wcSEgoKT0ZQUF9MT0NBTBD+////BxIQCghPRlBQX0FOWRD/////ByrIBQoIb2ZwX3R5cGUSDgoKT0ZQVF9IRUxMTxAAEg4KCk9GUFRfRVJST1IQARIVChFPRlBUX0VDSE9fUkVRVUVTVBACEhMKD09GUFRfRUNIT19SRVBMWRADEhUKEU9GUFRfRVhQRVJJTUVOVEVSEAQSGQoVT0ZQVF9GRUFUVVJFU19SRVFVRVNUEAUSFwoTT0ZQVF9GRUFUVVJFU19SRVBMWRAGEhsKF09GUFRfR0VUX0NPTkZJR19SRVFVRVNUEAcSGQoVT0ZQVF9HRVRfQ09ORklHX1JFUExZEAgSEwoPT0ZQVF9TRVRfQ09ORklHEAkSEgoOT0ZQVF9QQUNLRVRfSU4QChIVChFPRlBUX0ZMT1dfUkVNT1ZFRBALEhQKEE9GUFRfUE9SVF9TVEFUVVMQDBITCg9PRlBUX1BBQ0tFVF9PVVQQDRIRCg1PRlBUX0ZMT1dfTU9EEA4SEgoOT0ZQVF9HUk9VUF9NT0QQDxIRCg1PRlBUX1BPUlRfTU9EEBASEgoOT0ZQVF9UQUJMRV9NT0QQERIaChZPRlBUX01VTFRJUEFSVF9SRVFVRVNUEBISGAoUT0ZQVF9NVUxUSVBBUlRfUkVQTFkQExIYChRPRlBUX0JBUlJJRVJfUkVRVUVTVBAUEhYKEk9GUFRfQkFSUklFUl9SRVBMWRAVEiEKHU9GUFRfUVVFVUVfR0VUX0NPTkZJR19SRVFVRVNUEBYSHwobT0ZQVF9RVUVVRV9HRVRfQ09ORklHX1JFUExZEBcSFQoRT0ZQVF9ST0xFX1JFUVVFU1QQGBITCg9PRlBUX1JPTEVfUkVQTFkQGRIaChZPRlBUX0dFVF9BU1lOQ19SRVFVRVNUEBoSGAoUT0ZQVF9HRVRfQVNZTkNfUkVQTFkQGxISCg5PRlBUX1NFVF9BU1lOQxAcEhIKDk9GUFRfTUVURVJfTU9EEB0qQwoTb2ZwX2hlbGxvX2VsZW1fdHlwZRISCg5PRlBIRVRfSU5WQUxJRBAAEhgKFE9GUEhFVF9WRVJTSU9OQklUTUFQEAEqZQoQb2ZwX2NvbmZpZ19mbGFncxIUChBPRlBDX0ZSQUdfTk9STUFMEAASEgoOT0ZQQ19GUkFHX0RST1AQARITCg9PRlBDX0ZSQUdfUkVBU00QAhISCg5PRlBDX0ZSQUdfTUFTSxADKkAKEG9mcF90YWJsZV9jb25maWcSEQoNT0ZQVENfSU5WQUxJRBAAEhkKFU9GUFRDX0RFUFJFQ0FURURfTUFTSxADKj4KCW9mcF90YWJsZRIRCg1PRlBUVF9JTlZBTElEEAASDgoJT0ZQVFRfTUFYEP4BEg4KCU9GUFRUX0FMTBD/ASq7AQoQb2ZwX2NhcGFiaWxpdGllcxIQCgxPRlBDX0lOVkFMSUQQABITCg9PRlBDX0ZMT1dfU1RBVFMQARIUChBPRlBDX1RBQkxFX1NUQVRTEAISEwoPT0ZQQ19QT1JUX1NUQVRTEAQSFAoQT0ZQQ19HUk9VUF9TVEFUUxAIEhEKDU9GUENfSVBfUkVBU00QIBIUChBPRlBDX1FVRVVFX1NUQVRTEEASFgoRT0ZQQ19QT1JUX0JMT0NLRUQQgAIqdgoPb2ZwX3BvcnRfY29uZmlnEhEKDU9GUFBDX0lOVkFMSUQQABITCg9PRlBQQ19QT1JUX0RPV04QARIRCg1PRlBQQ19OT19SRUNWEAQSEAoMT0ZQUENfTk9fRldEECASFgoST0ZQUENfTk9fUEFDS0VUX0lOEEAqWwoOb2ZwX3BvcnRfc3RhdGUSEQoNT0ZQUFNfSU5WQUxJRBAAEhMKD09GUFBTX0xJTktfRE9XThABEhEKDU9GUFBTX0JMT0NLRUQQAhIOCgpPRlBQU19MSVZFEAQq3QIKEW9mcF9wb3J0X2ZlYXR1cmVzEhEKDU9GUFBGX0lOVkFMSUQQABIRCg1PRlBQRl8xME1CX0hEEAESEQoNT0ZQUEZfMTBNQl9GRBACEhIKDk9GUFBGXzEwME1CX0hEEAQSEgoOT0ZQUEZfMTAwTUJfRkQQCBIQCgxPRlBQRl8xR0JfSEQQEBIQCgxPRlBQRl8xR0JfRkQQIBIRCg1PRlBQRl8xMEdCX0ZEEEASEgoNT0ZQUEZfNDBHQl9GRBCAARITCg5PRlBQRl8xMDBHQl9GRBCAAhIRCgxPRlBQRl8xVEJfRkQQgAQSEAoLT0ZQUEZfT1RIRVIQgAgSEQoMT0ZQUEZfQ09QUEVSEIAQEhAKC09GUFBGX0ZJQkVSEIAgEhIKDU9GUFBGX0FVVE9ORUcQgEASEQoLT0ZQUEZfUEFVU0UQgIABEhYKEE9GUFBGX1BBVVNFX0FTWU0QgIACKkQKD29mcF9wb3J0X3JlYXNvbhINCglPRlBQUl9BREQQABIQCgxPRlBQUl9ERUxFVEUQARIQCgxPRlBQUl9NT0RJRlkQAiozCg5vZnBfbWF0Y2hfdHlwZRISCg5PRlBNVF9TVEFOREFSRBAAEg0KCU9GUE1UX09YTRABKmsKDW9mcF9veG1fY2xhc3MSEAoMT0ZQWE1DX05YTV8wEAASEAoMT0ZQWE1DX05YTV8xEAESGwoVT0ZQWE1DX09QRU5GTE9XX0JBU0lDEICAAhIZChNPRlBYTUNfRVhQRVJJTUVOVEVSEP//AyqQCAoTb3htX29mYl9maWVsZF90eXBlcxIWChJPRlBYTVRfT0ZCX0lOX1BPUlQQABIaChZPRlBYTVRfT0ZCX0lOX1BIWV9QT1JUEAESFwoTT0ZQWE1UX09GQl9NRVRBREFUQRACEhYKEk9GUFhNVF9PRkJfRVRIX0RTVBADEhYKEk9GUFhNVF9PRkJfRVRIX1NSQxAEEhcKE09GUFhNVF9PRkJfRVRIX1RZUEUQBRIXChNPRlBYTVRfT0ZCX1ZMQU5fVklEEAYSFwoTT0ZQWE1UX09GQl9WTEFOX1BDUBAHEhYKEk9GUFhNVF9PRkJfSVBfRFNDUBAIEhUKEU9GUFhNVF9PRkJfSVBfRUNOEAkSFwoTT0ZQWE1UX09GQl9JUF9QUk9UTxAKEhcKE09GUFhNVF9PRkJfSVBWNF9TUkMQCxIXChNPRlBYTVRfT0ZCX0lQVjRfRFNUEAwSFgoST0ZQWE1UX09GQl9UQ1BfU1JDEA0SFgoST0ZQWE1UX09GQl9UQ1BfRFNUEA4SFgoST0ZQWE1UX09GQl9VRFBfU1JDEA8SFgoST0ZQWE1UX09GQl9VRFBfRFNUEBASFwoTT0ZQWE1UX09GQl9TQ1RQX1NSQxAREhcKE09GUFhNVF9PRkJfU0NUUF9EU1QQEhIaChZPRlBYTVRfT0ZCX0lDTVBWNF9UWVBFEBMSGgoWT0ZQWE1UX09GQl9JQ01QVjRfQ09ERRAUEhUKEU9GUFhNVF9PRkJfQVJQX09QEBUSFgoST0ZQWE1UX09GQl9BUlBfU1BBEBYSFgoST0ZQWE1UX09GQl9BUlBfVFBBEBcSFgoST0ZQWE1UX09GQl9BUlBfU0hBEBgSFgoST0ZQWE1UX09GQl9BUlBfVEhBEBkSFwoTT0ZQWE1UX09GQl9JUFY2X1NSQxAaEhcKE09GUFhNVF9PRkJfSVBWNl9EU1QQGxIaChZPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMEBwSGgoWT0ZQWE1UX09GQl9JQ01QVjZfVFlQRRAdEhoKFk9GUFhNVF9PRkJfSUNNUFY2X0NPREUQHhIdChlPRlBYTVRfT0ZCX0lQVjZfTkRfVEFSR0VUEB8SGgoWT0ZQWE1UX09GQl9JUFY2X05EX1NMTBAgEhoKFk9GUFhNVF9PRkJfSVBWNl9ORF9UTEwQIRIZChVPRlBYTVRfT0ZCX01QTFNfTEFCRUwQIhIWChJPRlBYTVRfT0ZCX01QTFNfVEMQIxIXChNPRlBYTVRfT0ZCX01QTFNfQk9TECQSFwoTT0ZQWE1UX09GQl9QQkJfSVNJRBAlEhgKFE9GUFhNVF9PRkJfVFVOTkVMX0lEECYSGgoWT0ZQWE1UX09GQl9JUFY2X0VYVEhEUhAnKjMKC29mcF92bGFuX2lkEg8KC09GUFZJRF9OT05FEAASEwoOT0ZQVklEX1BSRVNFTlQQgCAqyQEKFG9mcF9pcHY2ZXh0aGRyX2ZsYWdzEhIKDk9GUElFSF9JTlZBTElEEAASEQoNT0ZQSUVIX05PTkVYVBABEg4KCk9GUElFSF9FU1AQAhIPCgtPRlBJRUhfQVVUSBAEEg8KC09GUElFSF9ERVNUEAgSDwoLT0ZQSUVIX0ZSQUcQEBIRCg1PRlBJRUhfUk9VVEVSECASDgoKT0ZQSUVIX0hPUBBAEhEKDE9GUElFSF9VTlJFUBCAARIRCgxPRlBJRUhfVU5TRVEQgAIq/AIKD29mcF9hY3Rpb25fdHlwZRIQCgxPRlBBVF9PVVRQVVQQABIWChJPRlBBVF9DT1BZX1RUTF9PVVQQCxIVChFPRlBBVF9DT1BZX1RUTF9JThAMEhYKEk9GUEFUX1NFVF9NUExTX1RUTBAPEhYKEk9GUEFUX0RFQ19NUExTX1RUTBAQEhMKD09GUEFUX1BVU0hfVkxBThAREhIKDk9GUEFUX1BPUF9WTEFOEBISEwoPT0ZQQVRfUFVTSF9NUExTEBMSEgoOT0ZQQVRfUE9QX01QTFMQFBITCg9PRlBBVF9TRVRfUVVFVUUQFRIPCgtPRlBBVF9HUk9VUBAWEhQKEE9GUEFUX1NFVF9OV19UVEwQFxIUChBPRlBBVF9ERUNfTldfVFRMEBgSEwoPT0ZQQVRfU0VUX0ZJRUxEEBkSEgoOT0ZQQVRfUFVTSF9QQkIQGhIRCg1PRlBBVF9QT1BfUEJCEBsSGAoST0ZQQVRfRVhQRVJJTUVOVEVSEP//AypWChZvZnBfY29udHJvbGxlcl9tYXhfbGVuEhIKDk9GUENNTF9JTlZBTElEEAASEAoKT0ZQQ01MX01BWBDl/wMSFgoQT0ZQQ01MX05PX0JVRkZFUhD//wMqzwEKFG9mcF9pbnN0cnVjdGlvbl90eXBlEhEKDU9GUElUX0lOVkFMSUQQABIUChBPRlBJVF9HT1RPX1RBQkxFEAESGAoUT0ZQSVRfV1JJVEVfTUVUQURBVEEQAhIXChNPRlBJVF9XUklURV9BQ1RJT05TEAMSFwoTT0ZQSVRfQVBQTFlfQUNUSU9OUxAEEhcKE09GUElUX0NMRUFSX0FDVElPTlMQBRIPCgtPRlBJVF9NRVRFUhAGEhgKEk9GUElUX0VYUEVSSU1FTlRFUhD//wMqewoUb2ZwX2Zsb3dfbW9kX2NvbW1hbmQSDQoJT0ZQRkNfQUREEAASEAoMT0ZQRkNfTU9ESUZZEAESFwoTT0ZQRkNfTU9ESUZZX1NUUklDVBACEhAKDE9GUEZDX0RFTEVURRADEhcKE09GUEZDX0RFTEVURV9TVFJJQ1QQBCqjAQoSb2ZwX2Zsb3dfbW9kX2ZsYWdzEhEKDU9GUEZGX0lOVkFMSUQQABIXChNPRlBGRl9TRU5EX0ZMT1dfUkVNEAESFwoTT0ZQRkZfQ0hFQ0tfT1ZFUkxBUBACEhYKEk9GUEZGX1JFU0VUX0NPVU5UUxAEEhcKE09GUEZGX05PX1BLVF9DT1VOVFMQCBIXChNPRlBGRl9OT19CWVRfQ09VTlRTEBAqUwoJb2ZwX2dyb3VwEhAKDE9GUEdfSU5WQUxJRBAAEhAKCE9GUEdfTUFYEID+//8HEhAKCE9GUEdfQUxMEPz///8HEhAKCE9GUEdfQU5ZEP////8HKkoKFW9mcF9ncm91cF9tb2RfY29tbWFuZBINCglPRlBHQ19BREQQABIQCgxPRlBHQ19NT0RJRlkQARIQCgxPRlBHQ19ERUxFVEUQAipTCg5vZnBfZ3JvdXBfdHlwZRINCglPRlBHVF9BTEwQABIQCgxPRlBHVF9TRUxFQ1QQARISCg5PRlBHVF9JTkRJUkVDVBACEgwKCE9GUEdUX0ZGEAMqUAoUb2ZwX3BhY2tldF9pbl9yZWFzb24SEQoNT0ZQUl9OT19NQVRDSBAAEg8KC09GUFJfQUNUSU9OEAESFAoQT0ZQUl9JTlZBTElEX1RUTBACKosBChdvZnBfZmxvd19yZW1vdmVkX3JlYXNvbhIWChJPRlBSUl9JRExFX1RJTUVPVVQQABIWChJPRlBSUl9IQVJEX1RJTUVPVVQQARIQCgxPRlBSUl9ERUxFVEUQAhIWChJPRlBSUl9HUk9VUF9ERUxFVEUQAxIWChJPRlBSUl9NRVRFUl9ERUxFVEUQBCpuCglvZnBfbWV0ZXISDQoJT0ZQTV9aRVJPEAASEAoIT0ZQTV9NQVgQgID8/wcSFQoNT0ZQTV9TTE9XUEFUSBD9////BxIXCg9PRlBNX0NPTlRST0xMRVIQ/v///wcSEAoIT0ZQTV9BTEwQ/////wcqbQoTb2ZwX21ldGVyX2JhbmRfdHlwZRISCg5PRlBNQlRfSU5WQUxJRBAAEg8KC09GUE1CVF9EUk9QEAESFgoST0ZQTUJUX0RTQ1BfUkVNQVJLEAISGQoTT0ZQTUJUX0VYUEVSSU1FTlRFUhD//wMqSgoVb2ZwX21ldGVyX21vZF9jb21tYW5kEg0KCU9GUE1DX0FERBAAEhAKDE9GUE1DX01PRElGWRABEhAKDE9GUE1DX0RFTEVURRACKmcKD29mcF9tZXRlcl9mbGFncxIRCg1PRlBNRl9JTlZBTElEEAASDgoKT0ZQTUZfS0JQUxABEg8KC09GUE1GX1BLVFBTEAISDwoLT0ZQTUZfQlVSU1QQBBIPCgtPRlBNRl9TVEFUUxAIKqQDCg5vZnBfZXJyb3JfdHlwZRIWChJPRlBFVF9IRUxMT19GQUlMRUQQABIVChFPRlBFVF9CQURfUkVRVUVTVBABEhQKEE9GUEVUX0JBRF9BQ1RJT04QAhIZChVPRlBFVF9CQURfSU5TVFJVQ1RJT04QAxITCg9PRlBFVF9CQURfTUFUQ0gQBBIZChVPRlBFVF9GTE9XX01PRF9GQUlMRUQQBRIaChZPRlBFVF9HUk9VUF9NT0RfRkFJTEVEEAYSGQoVT0ZQRVRfUE9SVF9NT0RfRkFJTEVEEAcSGgoWT0ZQRVRfVEFCTEVfTU9EX0ZBSUxFRBAIEhkKFU9GUEVUX1FVRVVFX09QX0ZBSUxFRBAJEh4KGk9GUEVUX1NXSVRDSF9DT05GSUdfRkFJTEVEEAoSHQoZT0ZQRVRfUk9MRV9SRVFVRVNUX0ZBSUxFRBALEhoKFk9GUEVUX01FVEVSX01PRF9GQUlMRUQQDBIfChtPRlBFVF9UQUJMRV9GRUFUVVJFU19GQUlMRUQQDRIYChJPRlBFVF9FWFBFUklNRU5URVIQ//8DKkIKFW9mcF9oZWxsb19mYWlsZWRfY29kZRIXChNPRlBIRkNfSU5DT01QQVRJQkxFEAASEAoMT0ZQSEZDX0VQRVJNEAEq7QIKFG9mcF9iYWRfcmVxdWVzdF9jb2RlEhYKEk9GUEJSQ19CQURfVkVSU0lPThAAEhMKD09GUEJSQ19CQURfVFlQRRABEhgKFE9GUEJSQ19CQURfTVVMVElQQVJUEAISGwoXT0ZQQlJDX0JBRF9FWFBFUklNRU5URVIQAxIXChNPRlBCUkNfQkFEX0VYUF9UWVBFEAQSEAoMT0ZQQlJDX0VQRVJNEAUSEgoOT0ZQQlJDX0JBRF9MRU4QBhIXChNPRlBCUkNfQlVGRkVSX0VNUFRZEAcSGQoVT0ZQQlJDX0JVRkZFUl9VTktOT1dOEAgSFwoTT0ZQQlJDX0JBRF9UQUJMRV9JRBAJEhMKD09GUEJSQ19JU19TTEFWRRAKEhMKD09GUEJSQ19CQURfUE9SVBALEhUKEU9GUEJSQ19CQURfUEFDS0VUEAwSJAogT0ZQQlJDX01VTFRJUEFSVF9CVUZGRVJfT1ZFUkZMT1cQDSqcAwoTb2ZwX2JhZF9hY3Rpb25fY29kZRITCg9PRlBCQUNfQkFEX1RZUEUQABISCg5PRlBCQUNfQkFEX0xFThABEhsKF09GUEJBQ19CQURfRVhQRVJJTUVOVEVSEAISFwoTT0ZQQkFDX0JBRF9FWFBfVFlQRRADEhcKE09GUEJBQ19CQURfT1VUX1BPUlQQBBIXChNPRlBCQUNfQkFEX0FSR1VNRU5UEAUSEAoMT0ZQQkFDX0VQRVJNEAYSEwoPT0ZQQkFDX1RPT19NQU5ZEAcSFAoQT0ZQQkFDX0JBRF9RVUVVRRAIEhgKFE9GUEJBQ19CQURfT1VUX0dST1VQEAkSHQoZT0ZQQkFDX01BVENIX0lOQ09OU0lTVEVOVBAKEhwKGE9GUEJBQ19VTlNVUFBPUlRFRF9PUkRFUhALEhIKDk9GUEJBQ19CQURfVEFHEAwSFwoTT0ZQQkFDX0JBRF9TRVRfVFlQRRANEhYKEk9GUEJBQ19CQURfU0VUX0xFThAOEhsKF09GUEJBQ19CQURfU0VUX0FSR1VNRU5UEA8q+gEKGG9mcF9iYWRfaW5zdHJ1Y3Rpb25fY29kZRIXChNPRlBCSUNfVU5LTk9XTl9JTlNUEAASFQoRT0ZQQklDX1VOU1VQX0lOU1QQARIXChNPRlBCSUNfQkFEX1RBQkxFX0lEEAISGQoVT0ZQQklDX1VOU1VQX01FVEFEQVRBEAMSHgoaT0ZQQklDX1VOU1VQX01FVEFEQVRBX01BU0sQBBIbChdPRlBCSUNfQkFEX0VYUEVSSU1FTlRFUhAFEhcKE09GUEJJQ19CQURfRVhQX1RZUEUQBhISCg5PRlBCSUNfQkFEX0xFThAHEhAKDE9GUEJJQ19FUEVSTRAIKqUCChJvZnBfYmFkX21hdGNoX2NvZGUSEwoPT0ZQQk1DX0JBRF9UWVBFEAASEgoOT0ZQQk1DX0JBRF9MRU4QARISCg5PRlBCTUNfQkFEX1RBRxACEhsKF09GUEJNQ19CQURfRExfQUREUl9NQVNLEAMSGwoXT0ZQQk1DX0JBRF9OV19BRERSX01BU0sQBBIYChRPRlBCTUNfQkFEX1dJTERDQVJEUxAFEhQKEE9GUEJNQ19CQURfRklFTEQQBhIUChBPRlBCTUNfQkFEX1ZBTFVFEAcSEwoPT0ZQQk1DX0JBRF9NQVNLEAgSFQoRT0ZQQk1DX0JBRF9QUkVSRVEQCRIUChBPRlBCTUNfRFVQX0ZJRUxEEAoSEAoMT0ZQQk1DX0VQRVJNEAsq0gEKGG9mcF9mbG93X21vZF9mYWlsZWRfY29kZRITCg9PRlBGTUZDX1VOS05PV04QABIWChJPRlBGTUZDX1RBQkxFX0ZVTEwQARIYChRPRlBGTUZDX0JBRF9UQUJMRV9JRBACEhMKD09GUEZNRkNfT1ZFUkxBUBADEhEKDU9GUEZNRkNfRVBFUk0QBBIXChNPRlBGTUZDX0JBRF9USU1FT1VUEAUSFwoTT0ZQRk1GQ19CQURfQ09NTUFORBAGEhUKEU9GUEZNRkNfQkFEX0ZMQUdTEAcqoQMKGW9mcF9ncm91cF9tb2RfZmFpbGVkX2NvZGUSGAoUT0ZQR01GQ19HUk9VUF9FWElTVFMQABIZChVPRlBHTUZDX0lOVkFMSURfR1JPVVAQARIeChpPRlBHTUZDX1dFSUdIVF9VTlNVUFBPUlRFRBACEhkKFU9GUEdNRkNfT1VUX09GX0dST1VQUxADEhoKFk9GUEdNRkNfT1VUX09GX0JVQ0tFVFMQBBIgChxPRlBHTUZDX0NIQUlOSU5HX1VOU1VQUE9SVEVEEAUSHQoZT0ZQR01GQ19XQVRDSF9VTlNVUFBPUlRFRBAGEhAKDE9GUEdNRkNfTE9PUBAHEhkKFU9GUEdNRkNfVU5LTk9XTl9HUk9VUBAIEhkKFU9GUEdNRkNfQ0hBSU5FRF9HUk9VUBAJEhQKEE9GUEdNRkNfQkFEX1RZUEUQChIXChNPRlBHTUZDX0JBRF9DT01NQU5EEAsSFgoST0ZQR01GQ19CQURfQlVDS0VUEAwSFQoRT0ZQR01GQ19CQURfV0FUQ0gQDRIRCg1PRlBHTUZDX0VQRVJNEA4qjwEKGG9mcF9wb3J0X21vZF9mYWlsZWRfY29kZRIUChBPRlBQTUZDX0JBRF9QT1JUEAASFwoTT0ZQUE1GQ19CQURfSFdfQUREUhABEhYKEk9GUFBNRkNfQkFEX0NPTkZJRxACEhkKFU9GUFBNRkNfQkFEX0FEVkVSVElTRRADEhEKDU9GUFBNRkNfRVBFUk0QBCpdChlvZnBfdGFibGVfbW9kX2ZhaWxlZF9jb2RlEhUKEU9GUFRNRkNfQkFEX1RBQkxFEAASFgoST0ZQVE1GQ19CQURfQ09ORklHEAESEQoNT0ZQVE1GQ19FUEVSTRACKloKGG9mcF9xdWV1ZV9vcF9mYWlsZWRfY29kZRIUChBPRlBRT0ZDX0JBRF9QT1JUEAASFQoRT0ZQUU9GQ19CQURfUVVFVUUQARIRCg1PRlBRT0ZDX0VQRVJNEAIqXgodb2ZwX3N3aXRjaF9jb25maWdfZmFpbGVkX2NvZGUSFQoRT0ZQU0NGQ19CQURfRkxBR1MQABITCg9PRlBTQ0ZDX0JBRF9MRU4QARIRCg1PRlBTQ0ZDX0VQRVJNEAIqWgocb2ZwX3JvbGVfcmVxdWVzdF9mYWlsZWRfY29kZRIRCg1PRlBSUkZDX1NUQUxFEAASEQoNT0ZQUlJGQ19VTlNVUBABEhQKEE9GUFJSRkNfQkFEX1JPTEUQAirFAgoZb2ZwX21ldGVyX21vZF9mYWlsZWRfY29kZRITCg9PRlBNTUZDX1VOS05PV04QABIYChRPRlBNTUZDX01FVEVSX0VYSVNUUxABEhkKFU9GUE1NRkNfSU5WQUxJRF9NRVRFUhACEhkKFU9GUE1NRkNfVU5LTk9XTl9NRVRFUhADEhcKE09GUE1NRkNfQkFEX0NPTU1BTkQQBBIVChFPRlBNTUZDX0JBRF9GTEFHUxAFEhQKEE9GUE1NRkNfQkFEX1JBVEUQBhIVChFPRlBNTUZDX0JBRF9CVVJTVBAHEhQKEE9GUE1NRkNfQkFEX0JBTkQQCBIbChdPRlBNTUZDX0JBRF9CQU5EX0RFVEFJTBAJEhkKFU9GUE1NRkNfT1VUX09GX01FVEVSUxAKEhgKFE9GUE1NRkNfT1VUX09GX0JBTkRTEAsqqQEKHm9mcF90YWJsZV9mZWF0dXJlc19mYWlsZWRfY29kZRIVChFPRlBURkZDX0JBRF9UQUJMRRAAEhgKFE9GUFRGRkNfQkFEX01FVEFEQVRBEAESFAoQT0ZQVEZGQ19CQURfVFlQRRACEhMKD09GUFRGRkNfQkFEX0xFThADEhgKFE9GUFRGRkNfQkFEX0FSR1VNRU5UEAQSEQoNT0ZQVEZGQ19FUEVSTRAFKs4CChJvZnBfbXVsdGlwYXJ0X3R5cGUSDgoKT0ZQTVBfREVTQxAAEg4KCk9GUE1QX0ZMT1cQARITCg9PRlBNUF9BR0dSRUdBVEUQAhIPCgtPRlBNUF9UQUJMRRADEhQKEE9GUE1QX1BPUlRfU1RBVFMQBBIPCgtPRlBNUF9RVUVVRRAFEg8KC09GUE1QX0dST1VQEAYSFAoQT0ZQTVBfR1JPVVBfREVTQxAHEhgKFE9GUE1QX0dST1VQX0ZFQVRVUkVTEAgSDwoLT0ZQTVBfTUVURVIQCRIWChJPRlBNUF9NRVRFUl9DT05GSUcQChIYChRPRlBNUF9NRVRFUl9GRUFUVVJFUxALEhgKFE9GUE1QX1RBQkxFX0ZFQVRVUkVTEAwSEwoPT0ZQTVBfUE9SVF9ERVNDEA0SGAoST0ZQTVBfRVhQRVJJTUVOVEVSEP//AypKChtvZnBfbXVsdGlwYXJ0X3JlcXVlc3RfZmxhZ3MSFgoST0ZQTVBGX1JFUV9JTlZBTElEEAASEwoPT0ZQTVBGX1JFUV9NT1JFEAEqTAoZb2ZwX211bHRpcGFydF9yZXBseV9mbGFncxIYChRPRlBNUEZfUkVQTFlfSU5WQUxJRBAAEhUKEU9GUE1QRl9SRVBMWV9NT1JFEAEq5AMKG29mcF90YWJsZV9mZWF0dXJlX3Byb3BfdHlwZRIYChRPRlBURlBUX0lOU1RSVUNUSU9OUxAAEh0KGU9GUFRGUFRfSU5TVFJVQ1RJT05TX01JU1MQARIXChNPRlBURlBUX05FWFRfVEFCTEVTEAISHAoYT0ZQVEZQVF9ORVhUX1RBQkxFU19NSVNTEAMSGQoVT0ZQVEZQVF9XUklURV9BQ1RJT05TEAQSHgoaT0ZQVEZQVF9XUklURV9BQ1RJT05TX01JU1MQBRIZChVPRlBURlBUX0FQUExZX0FDVElPTlMQBhIeChpPRlBURlBUX0FQUExZX0FDVElPTlNfTUlTUxAHEhEKDU9GUFRGUFRfTUFUQ0gQCBIVChFPRlBURlBUX1dJTERDQVJEUxAKEhoKFk9GUFRGUFRfV1JJVEVfU0VURklFTEQQDBIfChtPRlBURlBUX1dSSVRFX1NFVEZJRUxEX01JU1MQDRIaChZPRlBURlBUX0FQUExZX1NFVEZJRUxEEA4SHwobT0ZQVEZQVF9BUFBMWV9TRVRGSUVMRF9NSVNTEA8SGgoUT0ZQVEZQVF9FWFBFUklNRU5URVIQ/v8DEh8KGU9GUFRGUFRfRVhQRVJJTUVOVEVSX01JU1MQ//8DKpMBChZvZnBfZ3JvdXBfY2FwYWJpbGl0aWVzEhIKDk9GUEdGQ19JTlZBTElEEAASGAoUT0ZQR0ZDX1NFTEVDVF9XRUlHSFQQARIaChZPRlBHRkNfU0VMRUNUX0xJVkVORVNTEAISEwoPT0ZQR0ZDX0NIQUlOSU5HEAQSGgoWT0ZQR0ZDX0NIQUlOSU5HX0NIRUNLUxAIKmsKFG9mcF9xdWV1ZV9wcm9wZXJ0aWVzEhEKDU9GUFFUX0lOVkFMSUQQABISCg5PRlBRVF9NSU5fUkFURRABEhIKDk9GUFFUX01BWF9SQVRFEAISGAoST0ZQUVRfRVhQRVJJTUVOVEVSEP//AypxChNvZnBfY29udHJvbGxlcl9yb2xlEhcKE09GUENSX1JPTEVfTk9DSEFOR0UQABIUChBPRlBDUl9ST0xFX0VRVUFMEAESFQoRT0ZQQ1JfUk9MRV9NQVNURVIQAhIUChBPRlBDUl9ST0xFX1NMQVZFEANCVQoeb3JnLm9wZW5jb3JkLnZvbHRoYS5vcGVuZmxvdzEzWjNnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjQvZ28vb3BlbmZsb3dfMTNK67QGCgcSBTkAhxIBCuQUCgEMEgM5ABIa+QYKIFRoaXMgaXMgYSByZWxhdGl2ZWx5IHN0cmFpZ2h0Zm9yd2FyZCByZW5kZXJpbmcgb2YgT3BlbkZsb3cgbWVzc2FnZQogZGVmaW5pdGlvbnMgaW50byBwcm90b2NvbCBidWZmZXIgbWVzc2FnZXMuIFdlIHByZXNlcnZlZCB0aGUgc25ha2UKIGNhc2Ugc3ludGF4LCBhbmQgbWFkZSB0aGUgZm9sbG93aW5nIGNoYW5nZXM6CiAtIGFsbCBwYWQgZmllbGRzIGRyb3BwZWQKIC0gZm9yIGVhY2ggZW51bSB2YWx1ZSBhYm92ZSAweDdmZmZmZmZmIHRoZSBNU0IgaXMgZHJvcHBlZC4gRm9yIGV4YW1wbGUsCiAgIDB4ZmZmZmZmZmYgaXMgbm93IDB4N2ZmZmZmZmYuCiAtICc8dHlwZT4gdGhpbmdbLi4uXScgaXMgcmVwbGFjZWQgd2l0aCAncmVwZWF0ZWQgPHR5cGU+IHRoaW5nJwogLSAnY2hhciB0aGluZ1suLi5dJyBpcyByZXBsYWNlZCB3aXRoICdzdHJpbmcgdGhpbmcnCiAtICd1aW50OF90IGRhdGFbLi4uXScgaXMgcmVwbGFjZWQgd2l0aCAnYnl0ZXMgZGF0YScKIC0gdGhlIGZvbGxvd2luZyBzeXN0ZW1hdGljIGNoYW5nZXMgYXJlIGRvbmUgdG8gdmFyaW91cyBpbnRlZ2VyIHR5cGVzOgogICB1aW50OF90ICAtPiB1aW50MzIKICAgdWludDE2X3QgLT4gdWludDMyCiAgIHVpbnQzMl90IC0+IHVpbnQzMgogICB1aW50NjRfdCAtPiB1aW50NjQKIC0gcmVtb3ZlZCBtb3N0IGxlbmd0aCwgbGVuLCBzaXplIGZpZWxkcyB3aGVyZSB0aGVzZSB2YWx1ZXMgY2FuIGJlIGRldGVybWluZWQKICAgZnJvbSB0aGUgZXhwbGljaXRseSBlbmNvZGVkIGxlbmd0aCBvZiAicmVwZWF0ZWQiIHByb3RvYnVmIGZpZWxkcy4KIC0gZXhwbGljaXQgdXNlIG9mIGVudW0gdHlwZXMgd2hlcmVldmVyIGl0IGlzIHVuYW1iaWdvdXMgKGFuZCBub3QgdXNlZCBhcwogICBiaXRtYXNrL2ZsYWdzIHZhbHVlLgoKMqYNIENvcHlyaWdodCAoYykgMjAwOCBUaGUgQm9hcmQgb2YgVHJ1c3RlZXMgb2YgVGhlIExlbGFuZCBTdGFuZm9yZAogSnVuaW9yIFVuaXZlcnNpdHkKIENvcHlyaWdodCAoYykgMjAxMSwgMjAxMiBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbgoKIFdlIGFyZSBtYWtpbmcgdGhlIE9wZW5GbG93IHNwZWNpZmljYXRpb24gYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgogKFNvZnR3YXJlKSBhdmFpbGFibGUgZm9yIHB1YmxpYyB1c2UgYW5kIGJlbmVmaXQgd2l0aCB0aGUgZXhwZWN0YXRpb24KIHRoYXQgb3RoZXJzIHdpbGwgdXNlLCBtb2RpZnkgYW5kIGVuaGFuY2UgdGhlIFNvZnR3YXJlIGFuZCBjb250cmlidXRlCiB0aG9zZSBlbmhhbmNlbWVudHMgYmFjayB0byB0aGUgY29tbXVuaXR5LiBIb3dldmVyLCBzaW5jZSB3ZSB3b3VsZAogbGlrZSB0byBtYWtlIHRoZSBTb2Z0d2FyZSBhdmFpbGFibGUgZm9yIGJyb2FkZXN0IHVzZSwgd2l0aCBhcyBmZXcKIHJlc3RyaWN0aW9ucyBhcyBwb3NzaWJsZSBwZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mCiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIFNvZnR3YXJlIHRvIGRlYWwgaW4KIHRoZSBTb2Z0d2FyZSB1bmRlciB0aGUgY29weXJpZ2h0cyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAogTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKIFNPRlRXQVJFLgoKIFRoZSBuYW1lIGFuZCB0cmFkZW1hcmtzIG9mIGNvcHlyaWdodCBob2xkZXIocykgbWF5IE5PVCBiZSB1c2VkIGluCiBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byB0aGUgU29mdHdhcmUgb3IgYW55CiBkZXJpdmF0aXZlcyB3aXRob3V0IHNwZWNpZmljLCB3cml0dGVuIHByaW9yIHBlcm1pc3Npb24uCjI1IE9wZW5GbG93OiBwcm90b2NvbCBiZXR3ZWVuIGNvbnRyb2xsZXIgYW5kIGRhdGFwYXRoLiAKCAoBCBIDOwBKCgkKAggLEgM7AEoKCAoBCBIDPAA3CgkKAggBEgM8ADcKCAoBAhIDPgAUCgkKAgMAEgNAACYKpgQKAgUAEgRVAGoBGjUgUG9ydCBudW1iZXJpbmcuIFBvcnRzIGFyZSBudW1iZXJlZCBzdGFydGluZyBmcm9tIDEuIDJjIFZlcnNpb24gbnVtYmVyOgogT3BlbkZsb3cgdmVyc2lvbnMgcmVsZWFzZWQ6IDB4MDEgPSAxLjAgOyAweDAyID0gMS4xIDsgMHgwMyA9IDEuMgogICAgIDB4MDQgPSAxLjMKMlUgVGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IGluIHRoZSB2ZXJzaW9uIGZpZWxkIGlzIHJlc2VydmVkIGFuZCBtdXN0CiBiZSBzZXQgdG8gemVyby4KMnojZGVmaW5lIE9GUF9WRVJTSU9OICAgMHgwNAojZGVmaW5lIFBJUEVMSU5FX1RBQkxFUyA2NAojZGVmaW5lIE9GUF9NQVhfVEFCTEVfTkFNRV9MRU4gMzIKI2RlZmluZSBPRlBfTUFYX1BPUlRfTkFNRV9MRU4gIDE2CjItIE9mZmljaWFsIElBTkEgcmVnaXN0ZXJlZCBwb3J0IGZvciBPcGVuRmxvdy4gMjYjZGVmaW5lIE9GUF9UQ1BfUE9SVCAgNjY1MwojZGVmaW5lIE9GUF9TU0xfUE9SVCAgNjY1MwoyRCNkZWZpbmUgT0ZQX0VUSF9BTEVOIDYgICAgICAg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BAoCAAESBIIDExcKDQoFBAoCAAMSBIIDGhsKGQoEBAoCARIEgwMEKiILIDAgb3IgbW9yZSAKDQoFBAoCAQQSBIMDBAwKDQoFBAoCAQYSBIMDDRoKDQoFBAoCAQESBIMDGyUKDQoFBAoCAQMSBIMDKCkKtwgKAgUMEgadAwCiAwEa5gEgT1hNIENsYXNzIElEcy4KIFRoZSBoaWdoIG9yZGVyIGJpdCBkaWZmZXJlbnRpYXRlIHJlc2VydmVkIGNsYXNzZXMgZnJvbSBtZW1iZXIgY2xhc3Nlcy4KIENsYXNzZXMgMHgwMDAwIHRvIDB4N0ZGRiBhcmUgbWVtYmVyIGNsYXNzZXMsIGFsbG9jYXRlZCBieSBPTkYuCiBDbGFzc2VzIDB4ODAwMCB0byAweEZGRkUgYXJlIHJlc2VydmVkIGNsYXNzZXMsIHJlc2VydmVkIGZvciBzdGFuZGFyZGlzYXRpb24uCjKpASBDb21wb25lbnRzIG9mIGEgT1hNIFRMViBoZWFkZXIuCiBUaG9zZSBtYWNyb3MgYXJlIG5vdCB2YWxpZCBmb3IgdGhlIGV4cGVyaW1lbnRlciBjbGFzcywgbWFjcm9zIGZvciB0aGUKIGV4cGVyaW1lbnRlciBjbGFzcyB3aWxsIGRlcGVuZCBvbiB0aGUgZXhwZXJpbWVudGVyIGhlYWRlciB1c2VkLiAykwUjZGVmaW5lIE9YTV9IRUFERVJfXyhDTEFTUywgRklFTEQsIEhBU01BU0ssIExFTkdUSCkgXAogICAgKCgoQ0xBU1MpIDw8IDE2KSB8ICgoRklFTEQpIDw8IDkpIHwgKChIQVNNQVNLKSA8PCA4KSB8IChMRU5HVEgpKQojZGVmaW5lIE9YTV9IRUFERVIoQ0xBU1MsIEZJRUxELCBMRU5HVEgpIFwKICAgIE9YTV9IRUFERVJfXyhDTEFTUywgRklFTEQsIDAsIExFTkdUSCkKI2RlZmluZSBPWE1fSEVBREVSX1coQ0xBU1MsIEZJRUxELCBMRU5HVEgpIFwKICAgIE9YTV9IRUFERVJfXyhDTEFTUywgRklFTEQsIDEsIChMRU5HVEgpICogMikKI2RlZmluZSBPWE1fQ0xBU1MoSEVBREVSKSAoKEhFQURFUikgPj4gMTYpCiNkZWZpbmUgT1hNX0ZJRUxEKEhF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Y2tldCB3YXMgcmVjZWl2ZWQuCgogQ29uc2lkZXIgYSBwYWNrZXQgcmVjZWl2ZWQgb24gYSB0dW5uZWwgaW50ZXJmYWNlIGRlZmluZWQgb3ZlciBhIGxpbmsKIGFnZ3JlZ2F0aW9uIGdyb3VwIChMQUcpIHdpdGggdHdvIHBoeXNpY2FsIHBvcnQgbWVtYmVycy4gIElmIHRoZSB0dW5uZWwKIGludGVyZmFjZSBpcyB0aGUgbG9naWNhbCBwb3J0IGJvdW5kIHRvIE9wZW5GbG93LiAgSW4gdGhpcyBjYXNlLAogT0ZQWE1UX09GX0lOX1BPUlQgaXMgdGhlIHR1bm5lbCdzIHBvcnQgbnVtYmVyIGFuZCBPRlBYTVRfT0ZfSU5fUEhZX1BPUlQgaXMKIHRoZSBwaHlzaWNhbCBwb3J0IG51bWJlciBvZiB0aGUgTEFHIG9uIHdoaWNoIHRoZSB0dW5uZWwgaXMgY29uZmlndXJlZC4KCiBXaGVuIGEgcGFja2V0IGlzIHJlY2VpdmVkIGRpcmVjdGx5IG9uIGEgcGh5c2ljYWwgcG9ydCBhbmQgbm90IHByb2Nlc3NlZCBieSBhCiBsb2dpY2FsIHBvcnQsIE9GUFhNVF9PRl9JTl9QT1JUIGFuZCBPRlBYTVRfT0ZfSU5fUEhZX1BPUlQgaGF2ZSB0aGUgc2FtZQogdmFsdWUuCgogVGhpcyBmaWVsZCBpcyB1c3VhbGx5IG5vdCBhdmFpbGFibGUgaW4gYSByZWd1bGFyIG1hdGNoIGFuZCBvbmx5IGF2YWlsYWJsZQogaW4gb2ZwX3BhY2tldF9pbiBtZXNzYWdlcyB3aGVuIGl0J3MgZGlmZmVyZW50IGZyb20gT1hNX09GX0lOX1BPUlQuCgogUHJlcmVxczogT1hNX09GX0lOX1BPUlQgbXVzdCBiZSBwcmVzZW50LgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAgMFEgSABAgOCg0KBQQMAgMBEgSABA8cCg0KBQQMAgMDEgSABB8gCq0CCgQEDAIEEgSMBAgiGo4BI2RlZmluZSBPWE1fT0ZfTUVUQURBVEEgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX01FVEFEQVRBLCA4KQojZGVmaW5lIE9YTV9PRl9NRVRBREFUQV9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfTUVUQURBVEEsIDgpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfTUVUQURBVEEgMm4gVGFibGUgbWV0YWRhdGEuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDY0LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDAIEBRIEjAQIDgoNCgUEDAIEARIEjAQPHQoNCgUEDAIEAxIEjAQgIQriAwoEBAwCBRIEmQQIGhqYAiNkZWZpbmUgT1hNX09GX0VUSF9EU1QgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfRFNULCA2KQojZGVmaW5lIE9YTV9PRl9FVEhfRFNUX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfRVRIX0RTVCwgNikKI2RlZmluZSBPWE1fT0ZfRVRIX1NSQyAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9TUkMsIDYpCiNkZWZpbmUgT1hNX09GX0VUSF9TUkNfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfU1JDLCA2KQoiLyBVc2VkIGZvciBPRlBYTVRfT0ZCX0VUSF9EU1QgKGV4YWN0bHkgNiBieXRlcykgMocBIFNvdXJjZSBvciBkZXN0aW5hdGlvbiBhZGRyZXNzIGluIEV0aGVybmV0IGhlYWRlci4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogNDgtYml0IEV0aGVybmV0IE1BQyBhZGRyZXNzLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4gCg0KBQQMAgUFEgSZBAgNCg0KBQQMAgUBEgSZBA4VCg0KBQQMAgUDEgSZBBgZCj0KBAQMAgYSBJoECBoiLyBVc2VkIGZvciBPRlBYTVRfT0ZCX0VUSF9TUkMgKGV4YWN0bHkgNiBieXRlcykgCg0KBQQMAgYFEgSaBAgNCg0KBQQMAgYBEgSaBA4VCg0KBQQMAgYDEgSaBBgZCukBCgQEDAIHEgSkBAgcGkYjZGVmaW5lIE9YTV9PRl9FVEhfVFlQRSAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfRVRIX1RZUEUsMikKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9FVEhfVFlQRSAycyBQYWNrZXQncyBFdGhlcm5ldCB0eXBlLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCBwUSBKQECA4KDQoFBAwCBwESBKQEDxcKDQoFBAwCBwMSBKQEGhsKgwsKBAQMAggSBMoECBwajgEjZGVmaW5lIE9YTV9PRl9WTEFOX1ZJRCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVkxBTl9WSUQsIDIpCiNkZWZpbmUgT1hNX09GX1ZMQU5fVklEX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9WTEFOX1ZJRCwgMikKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9WTEFOX1ZJRCAywwkgODAyLjFRIFZJRC4KCiBGb3IgYSBwYWNrZXQgd2l0aCBhbiA4MDIuMVEgaGVhZGVyLCB0aGlzIGlzIHRoZSBWTEFOLUlEIChWSUQpIGZyb20gdGhlCiBvdXRlcm1vc3QgdGFnLCB3aXRoIHRoZSBDRkkgYml0IGZvcmNlZCB0byAxLiBGb3IgYSBwYWNrZXQgd2l0aCBubyA4MDIuMVEKIGhlYWRlciwgdGhpcyBoYXMgdmFsdWUgT0ZQVklEX05PTkUuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlciB3aXRoIGJpdCAxMyBpbmRpY2F0aW5nCiBwcmVzZW5jZSBvZiBWTEFOIGhlYWRlciBhbmQgMyBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAxMyBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgogVGhpcyBmaWVsZCBjYW4gYmUgdXNlZCBpbiB2YXJpb3VzIHdheXM6CgogICAtIElmIGl0IGlzIG5vdCBjb25zdHJhaW5lZCBhdCBhbGwsIHRoZSBueF9tYXRjaCBtYXRjaGVzIHBhY2tldHMgd2l0aG91dAogICAgIGFuIDgwMi4xUSBoZWFkZXIgb3Igd2l0aCBhbiA4MDIuMVEgaGVhZGVyIHRoYXQgaGFzIGFueSBWSUQgdmFsdWUuCgogICAtIFRlc3RpbmcgZm9yIGFuIGV4YWN0IG1hdGNoIHdpdGggMHgwIG1hdGNoZXMgb25seSBwYWNrZXRzIHdpdGhvdXQKICAgICBhbiA4MDIuMVEgaGVhZGVyLgoKICAgLSBUZXN0aW5nIGZvciBhbiBleGFjdCBtYXRjaCB3aXRoIGEgVklEIHZhbHVlIHdpdGggQ0ZJPTEgbWF0Y2hlcyBwYWNrZXRzCiAgICAgdGhhdCBoYXZlIGFuIDgwMi4xUSBoZWFkZXIgd2l0aCBhIHNwZWNpZmllZCBWSUQuCgogICAtIFRlc3RpbmcgZm9yIGFuIGV4YWN0IG1hdGNoIHdpdGggYSBub256ZXJvIFZJRCB2YWx1ZSB3aXRoIENGST0wIGRvZXMKICAgICBub3QgbWFrZSBzZW5zZS4gIFRoZSBzd2l0Y2ggbWF5IHJlamVjdCB0aGlzIGNvbWJpbmF0aW9uLgoKICAgLSBUZXN0aW5nIHdpdGggbnhtX3ZhbHVlPTAsIG54bV9tYXNrPTB4MGZmZiBtYXRjaGVzIHBhY2tldHMgd2l0aCBubyA4MDIuMVEKICAgICBoZWFkZXIgb3Igd2l0aCBhbiA4MDIuMVEgaGVhZGVyIHdpdGggYSBWSUQgb2YgMC4KCiAgIC0gVGVzdGluZyB3aXRoIG54bV92YWx1ZT0weDEwMDAsIG54bV9tYXNrPTB4MTAwMCBtYXRjaGVzIHBhY2tldHMgd2l0aAogICAgIGFuIDgwMi4xUSBoZWFkZXIgdGhhdCBoYXMgYW55IFZJRCB2YWx1ZS4KCg0KBQQMAggFEgTKBAgOCg0KBQQMAggBEgTKBA8XCg0KBQQMAggDEgTKBBobCtADCgQEDAIJEgTaBAgdGkcjZGVmaW5lIE9YTV9PRl9WTEFOX1BDUCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVkxBTl9QQ1AsIDEpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfVkxBTl9QQ1AgMtgCIDgwMi4xUSBQQ1AuCgogRm9yIGEgcGFja2V0IHdpdGggYW4gODAyLjFRIGhlYWRlciwgdGhpcyBpcyB0aGUgVkxBTi1QQ1AgZnJvbSB0aGUKIG91dGVybW9zdCB0YWcuICBGb3IgYSBwYWNrZXQgd2l0aCBubyA4MDIuMVEgaGVhZGVyLCB0aGlzIGhhcyB2YWx1ZQogMC4KCiBQcmVyZXFzOiBPWE1fT0ZfVkxBTl9WSUQgbXVzdCBiZSBkaWZmZXJlbnQgZnJvbSBPRlBWSURfTk9ORS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCA1IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDMgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLgoKDQoFBAwCCQUSBNoECA4KDQoFBAwCCQESBNoEDxcKDQoFBAwCCQMSBNoEGhwKqAMKBAQMAgoSBOYECBwaRyNkZWZpbmUgT1hNX09GX0lQX0RTQ1AgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBfRFNDUCwgMSkKIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9JUF9EU0NQIDKxAiBUaGUgRGlmZiBTZXJ2IENvZGUgUG9pbnQgKERTQ1ApIGJpdHMgb2YgdGhlIElQIGhlYWRlci4KIFBhcnQgb2YgdGhlIElQdjQgVG9TIGZpZWxkIG9yIHRoZSBJUHY2IFRyYWZmaWMgQ2xhc3MgZmllbGQuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgYmUgZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggMiBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciA2IGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAgoFEgTmBAgOCg0KBQQMAgoBEgTmBA8WCg0KBQQMAgoDEgTmBBkbCo0DCgQEDAILEgTyBAgbGkUjZGVmaW5lIE9YTV9PRl9JUF9FQ04gICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBfRUNOLCAxKQoiHCBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQX0VDTiAymQIgVGhlIEVDTiBiaXRzIG9mIHRoZSBJUCBoZWFkZXIuCiBQYXJ0IG9mIHRoZSBJUHY0IFRvUyBmaWVsZCBvciB0aGUgSVB2NiBUcmFmZmljIENsYXNzIGZpZWxkLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IGJlIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDYgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMiBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAILBRIE8gQIDgoNCgUEDAILARIE8gQPFQoNCgUEDAILAxIE8gQYGgqNAgoEBAwCDBIE/AQIHRpHI2RlZmluZSBPWE1fT0ZfSVBfUFJPVE8gICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQX1BST1RPLCAxKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQX1BST1RPIDKVASBUaGUgInByb3RvY29sIiBieXRlIGluIHRoZSBJUCBoZWFkZXIuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgYmUgZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAgwFEgT8BAgOCg0KBQQMAgwBEgT8BA8XCg0KBQQMAgwDEgT8BBocCo0ECgQEDAINEgSKBQgdGqQCI2RlZmluZSBPWE1fT0ZfSVBWNF9TUkMgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNF9TUkMsIDQpCiNkZWZpbmUgT1hNX09GX0lQVjRfU1JDX1cgICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjRfU1JDLCA0KQojZGVmaW5lIE9YTV9PRl9JUFY0X0RTVCAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY0X0RTVCwgNCkKI2RlZmluZSBPWE1fT0ZfSVBWNF9EU1RfVyAgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNF9EU1QsIDQpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBWNF9TUkMgMrcBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gYWRkcmVzcyBpbiB0aGUgSVAgaGVhZGVyLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwMCBleGFjdGx5LgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQMAg0FEgSKBQgOCg0KBQQMAg0BEgSKBQ8XCg0KBQQMAg0DEgSKBRocCiwKBAQMAg4SBIsFCB0iHiBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQVjRfRFNUIAoNCgUEDAIOBRIEiwUIDgoNCgUEDAIOARIEiwUPFwoNCgUEDAIOAxIEiwUaHAqhAwoEBAwCDxIEmAUIHBqMASNkZWZpbmUgT1hNX09GX1RDUF9TUkMgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9UQ1BfU1JDLCAyKQojZGVmaW5lIE9YTV9PRl9UQ1BfRFNUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVENQX0RTVCwgMikKIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9UQ1BfU1JDIDLkASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIHBvcnQgaW4gdGhlIFRDUCBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgYmUgZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDYgZXhhY3RseS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIPBRIEmAUIDgoNCgUEDAIPARIEmAUPFgoNCgUEDAIPAxIEmAUZGworCgQEDAIQEgSZBQgcIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9UQ1BfRFNUIAoNCgUEDAIQBRIEmQUIDgoNCgUEDAIQARIEmQUPFgoNCgUEDAIQAxIEmQUZGwqlAwoEBAwCERIEpgUIHBqMASNkZWZpbmUgT1hNX09GX1VEUF9TUkMgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9VRFBfU1JDLCAyKQojZGVmaW5lIE9YTV9PRl9VRFBfRFNUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVURQX0RTVCwgMikKIh0gVXNlZCBmb3IgT0ZQWE1UX09GQl9VRFBfU1JDIDLoASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIHBvcnQgaW4gdGhlIFVEUCBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDE3IGV4YWN0bHkuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCEQUSBKYFCA4KDQoFBAwCEQESBKYFDxYKDQoFBAwCEQMSBKYFGRsKKwoEBAwCEhIEpwUIHCIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfVURQX0RTVCAKDQoFBAwCEgUSBKcFCA4KDQoFBAwCEgESBKcFDxYKDQoFBAwCEgMSBKcFGRsKqgMKBAQMAhMSBLQFCB0ajgEjZGVmaW5lIE9YTV9PRl9TQ1RQX1NSQyAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfU0NUUF9TUkMsIDIpCiNkZWZpbmUgT1hNX09GX1NDVFBfRFNUICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9TQ1RQX0RTVCwgMikKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9TQ1RQX1NSQyAy6gEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBwb3J0IGluIHRoZSBTQ1RQIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggMTMyIGV4YWN0bHkuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCEwUSBLQFCA4KDQoFBAwCEwESBLQFDxcKDQoFBAwCEwMSBLQFGhwKLAoEBAwCFBIEtQUIHSIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfU0NUUF9EU1QgCg0KBQQMAhQFEgS1BQgOCg0KBQQMAhQBEgS1BQ8XCg0KBQQMAhQDEgS1BRocCocDCgQEDAIVEgTCBQggGpgBI2RlZmluZSBPWE1fT0ZfSUNNUFY0X1RZUEUgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSUNNUFY0X1RZUEUsIDEpCiNkZWZpbmUgT1hNX09GX0lDTVBWNF9DT0RFICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lDTVBWNF9DT0RFLCAxKQoiISBVc2VkIGZvciBPRlBYTVRfT0ZCX0lDTVBWNF9UWVBFIDK6ASBUaGUgdHlwZSBvciBjb2RlIGluIHRoZSBJQ01QIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDAgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggMSBleGFjdGx5LgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIVBRIEwgUIDgoNCgUEDAIVARIEwgUPGgoNCgUEDAIVAxIEwgUdHwovCgQEDAIWEgTDBQggIiEgVXNlZCBmb3IgT0ZQWE1UX09GQl9JQ01QVjRfQ09ERSAKDQoFBAwCFgUSBMMFCA4KDQoFBAwCFgESBMMFDxoKDQoFBAwCFgMSBMMFHR8K1QIKBAQMAhcSBNAFCBsaRSNkZWZpbmUgT1hNX09GX0FSUF9PUCAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfT1AsIDIpCiIcIFVzZWQgZm9yIE9GUFhNVF9PRkJfQVJQX09QIDLhASBBUlAgb3Bjb2RlLgoKIEZvciBhbiBFdGhlcm5ldCtJUCBBUlAgcGFja2V0LCB0aGUgb3Bjb2RlIGluIHRoZSBBUlAgaGVhZGVyLiAgQWx3YXlzIDAKIG90aGVyd2lzZS4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDYgZXhhY3RseS4KCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIXBRIE0AUIDgoNCgUEDAIXARIE0AUPFQoNCgUEDAIXAxIE0AUYGgq1BAoEBAwCGBIE3wUIHBqYAiNkZWZpbmUgT1hNX09GX0FSUF9TUEEgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfU1BBLCA0KQojZGVmaW5lIE9YTV9PRl9BUlBfU1BBX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1NQQSwgNCkKI2RlZmluZSBPWE1fT0ZfQVJQX1RQQSAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9UUEEsIDQpCiNkZWZpbmUgT1hNX09GX0FSUF9UUEFfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfVFBBLCA0KQoiGCBGb3IgT0ZQWE1UX09GQl9BUlBfU1BBIDLxASBGb3IgYW4gRXRoZXJuZXQrSVAgQVJQIHBhY2tldCwgdGhlIHNvdXJjZSBvciB0YXJnZXQgcHJvdG9jb2wgYWRkcmVzcwogaW4gdGhlIEFSUCBoZWFkZXIuICBBbHdheXMgMCBvdGhlcndpc2UuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODA2IGV4YWN0bHkuCgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBAwCGAUSBN8FCA4KDQoFBAwCGAESBN8FDxYKDQoFBAwCGAMSBN8FGRsKJgoEBAwCGRIE4AUIHCIYIEZvciBPRlBYTVRfT0ZCX0FSUF9UUEEgCg0KBQQMAhkFEgTgBQgOCg0KBQQMAhkBEgTgBQ8WCg0KBQQMAhkDEgTgBRkbCrcECgQEDAIaEgTuBQgbGpwCI2RlZmluZSBPWE1fT0ZfQVJQX1NIQSAgICBPWE1fSEVBREVSICAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfU0hBLCA2KQojZGVmaW5lIE9YTV9PRl9BUlBfU0hBX1cgIE9YTV9IRUFERVJfVyAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9TSEEsIDYpCiNkZWZpbmUgT1hNX09GX0FSUF9USEEgICAgT1hNX0hFQURFUiAgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1RIQSwgNikKI2RlZmluZSBPWE1fT0ZfQVJQX1RIQV9XICBPWE1fSEVBREVSX1cgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfVEhBLCA2KQoiIiBGb3IgT0ZQWE1UX09GQl9BUlBfU0hBICg2IGJ5dGVzKSAy5QEgRm9yIGFuIEV0aGVybmV0K0lQIEFSUCBwYWNrZXQsIHRoZSBzb3VyY2Ugb3IgdGFyZ2V0IGhhcmR3YXJlIGFkZHJlc3MKIGluIHRoZSBBUlAgaGVhZGVyLiAgQWx3YXlzIDAgb3RoZXJ3aXNlLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwNiBleGFjdGx5LgoKIEZvcm1hdDogNDgtYml0IEV0aGVybmV0IE1BQyBhZGRyZXNzLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAhoFEgTuBQgNCg0KBQQMAhoBEgTuBQ4VCg0KBQQMAhoDEgTuBRgaCjAKBAQMAhsSBO8FCBsiIiBGb3IgT0ZQWE1UX09GQl9BUlBfVEhBICg2IGJ5dGVzKSAKDQoFBAwCGwUSBO8FCA0KDQoFBAwCGwESBO8FDhUKDQoFBAwCGwMSBO8FGBoK+gMKBAQMAhwSBP0FCBwapAIjZGVmaW5lIE9YTV9PRl9JUFY2X1NSQyAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfU1JDLCAxNikKI2RlZmluZSBPWE1fT0ZfSVBWNl9TUkNfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X1NSQywgMTYpCiNkZWZpbmUgT1hNX09GX0lQVjZfRFNUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9EU1QsIDE2KQojZGVmaW5lIE9YTV9PRl9JUFY2X0RTVF9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRFNULCAxNikKIhkgRm9yIE9GUFhNVF9PRkJfSVBWNl9TUkMgMqkBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gYWRkcmVzcyBpbiB0aGUgSVB2NiBoZWFkZXIuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCgogRm9ybWF0OiAxMjgtYml0IElQdjYgYWRkcmVzcy4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDAIcBRIE/QUIDQoNCgUEDAIcARIE/QUOFgoNCgUEDAIcAxIE/QUZGwonCgQEDAIdEgT+BQgcIhkgRm9yIE9GUFhNVF9PRkJfSVBWNl9EU1QgCg0KBQQMAh0FEgT+BQgNCg0KBQQMAh0BEgT+BQ4WCg0KBQQMAh0DEgT+BRkbCp0DCgQEDAIeEgSMBgggGpoBI2RlZmluZSBPWE1fT0ZfSVBWNl9GTEFCRUwgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMLCA0KQojZGVmaW5lIE9YTV9PRl9JUFY2X0ZMQUJFTF9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9GTEFCRUwsIDQpCiIcIEZvciBPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMIDLTASBUaGUgSVB2NiBGbG93IExhYmVsCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkKCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIHdpdGggMTIgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMjAgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBAwCHgUSBIwGCA4KDQoFBAwCHgESBIwGDxoKDQoFBAwCHgMSBIwGHR8KgwMKBAQMAh8SBJkGCCAalgEjZGVmaW5lIE9YTV9PRl9JQ01QVjZfVFlQRSBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lDTVBWNl9UWVBFLCAxKQojZGVmaW5lIE9YTV9PRl9JQ01QVjZfQ09ERSBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lDTVBWNl9DT0RFLCAxKQoiHCBGb3IgT0ZQWE1UX09GQl9JQ01QVjZfVFlQRSAyvQEgVGhlIHR5cGUgb3IgY29kZSBpbiB0aGUgSUNNUHY2IGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNTggZXhhY3RseS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCHwUSBJkGCA4KDQoFBAwCHwESBJkGDxoKDQoFBAwCHwMSBJkGHR8KKgoEBAwCIBIEmgYIICIcIEZvciBPRlBYTVRfT0ZCX0lDTVBWNl9DT0RFIAoNCgUEDAIgBRIEmgYIDgoNCgUEDAIgARIEmgYPGgoNCgUEDAIgAxIEmgYdHwqRAwoEBAwCIRIEqAYIIhpXI2RlZmluZSBPWE1fT0ZfSVBWNl9ORF9UQVJHRVQgT1hNX0hFQURFUiBcCiAgICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfTkRfVEFSR0VULCAxNikKIh8gRm9yIE9GUFhNVF9PRkJfSVBWNl9ORF9UQVJHRVQgMogCIFRoZSB0YXJnZXQgYWRkcmVzcyBpbiBhbiBJUHY2IE5laWdoYm9yIERpc2NvdmVyeSBtZXNzYWdlLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA1OCBleGFjdGx5LgogICBPWE1fT0ZfSUNNUFY2X1RZUEUgbXVzdCBiZSBlaXRoZXIgMTM1IG9yIDEzNi4KCiBGb3JtYXQ6IDEyOC1iaXQgSVB2NiBhZGRyZXNzLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQMAiEFEgSoBggNCg0KBQQMAiEBEgSoBg4cCg0KBQQMAiEDEgSoBh8hCpcDCgQEDAIiEgS2BggfGkwjZGVmaW5lIE9YTV9PRl9JUFY2X05EX1NMTCAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X05EX1NMTCwgNikKIhwgRm9yIE9GUFhNVF9PRkJfSVBWNl9ORF9TTEwgMpwCIFRoZSBzb3VyY2UgbGluay1sYXllciBhZGRyZXNzIG9wdGlvbiBpbiBhbiBJUHY2IE5laWdoYm9yIERpc2NvdmVyeQogbWVzc2FnZS4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNTggZXhhY3RseS4KICAgT1hNX09GX0lDTVBWNl9UWVBFIG11c3QgYmUgZXhhY3RseSAxMzUuCgogRm9ybWF0OiA0OC1iaXQgRXRoZXJuZXQgTUFDIGFkZHJlc3MuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCIgUSBLYGCA0KDQoFBAwCIgESBLYGDhkKDQoFBAwCIgMSBLYGHB4KlwMKBAQMAiMSBMQGCB8aTCNkZWZpbmUgT1hNX09GX0lQVjZfTkRfVExMICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfTkRfVExMLCA2KQoiHCBGb3IgT0ZQWE1UX09GQl9JUFY2X05EX1RMTCAynAIgVGhlIHRhcmdldCBsaW5rLWxheWVyIGFkZHJlc3Mgb3B0aW9uIGluIGFuIElQdjYgTmVpZ2hib3IgRGlzY292ZXJ5CiBtZXNzYWdlLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA1OCBleGFjdGx5LgogICBPWE1fT0ZfSUNNUFY2X1RZUEUgbXVzdCBiZSBleGFjdGx5IDEzNi4KCiBGb3JtYXQ6IDQ4LWJpdCBFdGhlcm5ldCBNQUMgYWRkcmVzcy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAIjBRIExAYIDQoNCgUEDAIjARIExAYOGQoNCgUEDAIjAxIExAYcHgr+AgoEBAwCJBIE0AYIHxpKI2RlZmluZSBPWE1fT0ZfTVBMU19MQUJFTCAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9NUExTX0xBQkVMLCA0KQoiGyBGb3IgT0ZQWE1UX09GQl9NUExTX0xBQkVMIDKGAiBUaGUgTEFCRUwgaW4gdGhlIGZpcnN0IE1QTFMgc2hpbSBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4ODQ3IG9yIDB4ODg0OCBleGFjdGx5LgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyIHdpdGggMTIgbW9zdC1zaWduaWZpY2FudAogYml0cyBmb3JjZWQgdG8gMC4gT25seSB0aGUgbG93ZXIgMjAgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCJAUSBNAGCA4KDQoFBAwCJAESBNAGDxkKDQoFBAwCJAMSBNAGHB4K3AIKBAQMAiUSBNwGCBwaRyNkZWZpbmUgT1hNX09GX01QTFNfVEMgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfTVBMU19UQywgMSkKIhggRm9yIE9GUFhNVF9PRkJfTVBMU19UQyAy6gEgVGhlIFRDIGluIHRoZSBmaXJzdCBNUExTIHNoaW0gaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODg0NyBvciAweDg4NDggZXhhY3RseS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCA1IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDMgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBAwCJQUSBNwGCA4KDQoFBAwCJQESBNwGDxYKDQoFBAwCJQMSBNwGGRsK5AIKBAQMAiYSBOgGCB0aSSNkZWZpbmUgT1hNX09GX01QTFNfQk9TICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX01QTFNfQk9TLCAxKQoiGSBGb3IgT0ZQWE1UX09GQl9NUExTX0JPUyAy7wEgVGhlIEJvUyBiaXQgaW4gdGhlIGZpcnN0IE1QTFMgc2hpbSBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4ODQ3IG9yIDB4ODg0OCBleGFjdGx5LgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDcgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXN0IGJpdCBoYXZlIGEgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDAImBRIE6AYIDgoNCgUEDAImARIE6AYPFwoNCgUEDAImAxIE6AYaHAqqAwoEBAwCJxIE9wYIHRqOASNkZWZpbmUgT1hNX09GX1BCQl9JU0lEICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9QQkJfSVNJRCwgMykKI2RlZmluZSBPWE1fT0ZfUEJCX0lTSURfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX1BCQl9JU0lELCAzKQoiGSBGb3IgT0ZQWE1UX09GQl9QQkJfSVNJRCAy7wEgSUVFRSA4MDIuMWFoIEktU0lELgoKIEZvciBhIHBhY2tldCB3aXRoIGEgUEJCIGhlYWRlciwgdGhpcyBpcyB0aGUgSS1TSUQgZnJvbSB0aGUKIG91dGVybW9zdCBzZXJ2aWNlIHRhZy4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg4RTcgZXhhY3RseS4KCiBGb3JtYXQ6IDI0LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuIAoNCgUEDAInBRIE9wYIDgoNCgUEDAInARIE9wYPFwoNCgUEDAInAxIE9wYaHAq8BgoEBAwCKBIEiwcIHhqUASNkZWZpbmUgT1hNX09GX1RVTk5FTF9JRCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1RVTk5FTF9JRCwgOCkKI2RlZmluZSBPWE1fT0ZfVFVOTkVMX0lEX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfVFVOTkVMX0lELCA4KQoiGiBGb3IgT0ZQWE1UX09GQl9UVU5ORUxfSUQgMvoEIExvZ2ljYWwgUG9ydCBNZXRhZGF0YS4KCiBNZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggYSBsb2dpY2FsIHBvcnQuCiBJZiB0aGUgbG9naWNhbCBwb3J0IHBlcmZvcm1zIGVuY2Fwc3VsYXRpb24gYW5kIGRlY2Fwc3VsYXRpb24sIHRoaXMKIGlzIHRoZSBkZW11bHRpcGxleGluZyBmaWVsZCBmcm9tIHRoZSBlbmNhcHN1bGF0aW9uIGhlYWRlci4KIEZvciBleGFtcGxlLCBmb3IgYSBwYWNrZXQgcmVjZWl2ZWQgdmlhIEdSRSB0dW5uZWwgaW5jbHVkaW5nIGEgKDMyLWJpdCkga2V5LAogdGhlIGtleSBpcyBzdG9yZWQgaW4gdGhlIGxvdyAzMi1iaXRzIGFuZCB0aGUgaGlnaCBiaXRzIGFyZSB6ZXJvZWQuCiBGb3IgYSBNUExTIGxvZ2ljYWwgcG9ydCwgdGhlIGxvdyAyMCBiaXRzIHJlcHJlc2VudCB0aGUgTVBMUyBMYWJlbC4KIEZvciBhIFZ4TEFOIGxvZ2ljYWwgcG9ydCwgdGhlIGxvdyAyNCBiaXRzIHJlcHJlc2VudCB0aGUgVk5JLgogSWYgdGhlIHBhY2tldCBpcyBub3QgcmVjZWl2ZWQgdGhyb3VnaCBhIGxvZ2ljYWwgcG9ydCwgdGhlIHZhbHVlIGlzIDAuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDY0LWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuIAoNCgUEDAIoBRIEiwcIDgoNCgUEDAIoARIEiwcPGAoNCgUEDAIoAxIEiwcbHQqoAwoEBAwCKRIEmAcIIBqaASNkZWZpbmUgT1hNX09GX0lQVjZfRVhUSERSICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0VYVEhEUiwgMikKI2RlZmluZSBPWE1fT0ZfSVBWNl9FWFRIRFJfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRVhUSERSLCAyKQoiHCBGb3IgT0ZQWE1UX09GQl9JUFY2X0VYVEhEUiAy3gEgVGhlIElQdjYgRXh0ZW5zaW9uIEhlYWRlciBwc2V1ZG8tZmllbGQuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkKCiBGb3JtYXQ6IDE2LWJpdCBpbnRlZ2VyIHdpdGggNyBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciA5IGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE1hc2thYmxlLiAKDQoFBAwCKQUSBJgHCA4KDQoFBAwCKQESBJgHDxoKDQoFBAwCKQMSBJgHHR8KTQoEBAwIARIGnQcEtQcFGj0gT3B0aW9uYWwgbWFzayB2YWx1ZXMgKG11c3QgYmUgcHJlc2VudCB3aGVuIGhhc19tYXNrIGlzIHRydWUgCg0KBQQMCAEBEgSdBwoOCicKBAQMAioSBJ4HCCkiGSBGb3IgT0ZQWE1UX09GQl9NRVRBREFUQSAKDQoFBAwCKgUSBJ4HCA4KDQoFBAwCKgESBJ4HDyIKDQoFBAwCKgMSBJ4H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lgEKBAUtAgESBI8NBBMahwEgSW5kaXZpZHVhbCBmbG93IHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfZmxvd19zdGF0c19yZXF1ZXN0LgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9mbG93X3N0YXRzLiAKDQoFBS0CAQESBI8NBA4KDQoFBS0CAQISBI8NERIKmQEKBAUtAgISBJQNBBgaigEgQWdncmVnYXRlIGZsb3cgc3RhdGlzdGljcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9hZ2dyZWdhdGVfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBib2R5IGlzIHN0cnVjdCBvZnBfYWdncmVnYXRlX3N0YXRzX3JlcGx5LiAKDQoFBS0CAgESBJQNBBMKDQoFBS0CAgISBJQNFhcKeQoEBS0CAxIEmQ0EFBprIEZsb3cgdGFibGUgc3RhdGlzdGljcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX3RhYmxlX3N0YXRzLiAKDQoFBS0CAwESBJkNBA8KDQoFBS0CAwISBJkNEhMKigEKBAUtAgQSBJ4NBBkafCBQb3J0IHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfcG9ydF9zdGF0c19yZXF1ZXN0LgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9wb3J0X3N0YXRzLiAKDQoFBS0CBAESBJ4NBBQKDQoFBS0CBAISBJ4NFxgKlwEKBAUtAgUSBKMNBBQaiAEgUXVldWUgc3RhdGlzdGljcyBmb3IgYSBwb3J0CiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfcXVldWVfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfcXVldWVfc3RhdHMgCg0KBQUtAgUBEgSjDQQPCg0KBQUtAgUCEgSjDRITCpEBCgQFLQIGEgSoDQQUGoIBIEdyb3VwIGNvdW50ZXIgc3RhdGlzdGljcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9ncm91cF9zdGF0c19yZXF1ZXN0LgogVGhlIHJlcGx5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfZ3JvdXBfc3RhdHMuIAoNCgUFLQIGARIEqA0EDwoNCgUFLQIGAhIEqA0SEwp0CgQFLQIHEgStDQQZGmYgR3JvdXAgZGVzY3JpcHRpb24uCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVtcHR5LgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF9ncm91cF9kZXNjLiAKDQoFBS0CBwESBK0NBBQKDQoFBS0CBwISBK0NFxgKaQoEBS0CCBIEsg0EHRpbIEdyb3VwIGZlYXR1cmVzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIHN0cnVjdCBvZnBfZ3JvdXBfZmVhdHVyZXMuIAoNCgUFLQIIARIEsg0EGAoNCgUFLQIIAhIEsg0bHAqTAQoEBS0CCRIEtw0EFBqEASBNZXRlciBzdGF0aXN0aWNzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX21ldGVyX211bHRpcGFydF9yZXF1ZXN0cy4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfbWV0ZXJfc3RhdHMuIAoNCgUFLQIJARIEtw0EDwoNCgUFLQIJAhIEtw0SEwqXAQoEBS0CChIEvA0EHBqIASBNZXRlciBjb25maWd1cmF0aW9uLgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX21ldGVyX211bHRpcGFydF9yZXF1ZXN0cy4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfbWV0ZXJfY29uZmlnLiAKDQoFBS0CCgESBLwNBBYKDQoFBS0CCgISBLwNGRsKaQoEBS0CCxIEwQ0EHhpbIE1ldGVyIGZlYXR1cmVzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIHN0cnVjdCBvZnBfbWV0ZXJfZmVhdHVyZXMuIAoNCgUFLQILARIEwQ0EGAoNCgUFLQILAhIEwQ0bHQqxAgoEBS0CDBIEyQ0EHhqiAiBUYWJsZSBmZWF0dXJlcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZWl0aGVyIGVtcHR5IG9yIGNvbnRhaW5zIGFuIGFycmF5IG9mCiBzdHJ1Y3Qgb2ZwX3RhYmxlX2ZlYXR1cmVzIGNvbnRhaW5pbmcgdGhlIGNvbnRyb2xsZXIncwogZGVzaXJlZCB2aWV3IG9mIHRoZSBzd2l0Y2guIElmIHRoZSBzd2l0Y2ggaXMgdW5hYmxlIHRvCiBzZXQgdGhlIHNwZWNpZmllZCB2aWV3IGFuIGVycm9yIGlzIHJldHVybmVkLgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF90YWJsZV9mZWF0dXJlcy4gCg0KBQUtAgwBEgTJDQQYCg0KBQUtAgwCEgTJDRsdCm0KBAUtAg0SBM4NBBkaXyBQb3J0IGRlc2NyaXB0aW9uLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfcG9ydC4gCg0KBQUtAg0BEgTODQQTCg0KBQUtAg0CEgTODRYYCr4BCgQFLQIOEgTUDQQgGq8BIEV4cGVyaW1lbnRlciBleHRlbnNpb24uCiBUaGUgcmVxdWVzdCBhbmQgcmVwbHkgYm9kaWVzIGJlZ2luIHdpdGgKIHN0cnVjdCBvZnBfZXhwZXJpbWVudGVyX211bHRpcGFydF9oZWFkZXIuCiBUaGUgcmVxdWVzdCBhbmQgcmVwbHkgYm9kaWVzIGFyZSBvdGhlcndpc2UgZXhwZXJpbWVudGVyLWRlZmluZWQuIAoNCgUFLQIOARIE1A0EFgoNCgUFLQIOAhIE1A0ZHwp8CgIFLhIG2g0A3Q0BMj0gQmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIDEuMy4xIC0gYXZvaWQgYnJlYWtpbmcgdGhlIEFQSS4gMi8jZGVmaW5lIG9mcF9tdWx0aXBhcnRfdHlwZXMgb2ZwX211bHRpcGFydF90eXBlCgoLCgMFLgESBNoNBSAKDAoEBS4CABIE2w0EGwoNCgUF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LiAKDwoFBFICBgQSBpgRBJcRHAoNCgUEUgIGBRIEmBEECgoNCgUEUgIGARIEmBELGAoNCgUEUgIGAxIEmBEbHArrBgoCBTMSBrERALYRARoTIENvbnRyb2xsZXIgcm9sZXMuIDLHBiBDb25maWd1cmVzIHRoZSAicm9sZSIgb2YgdGhlIHNlbmRpbmcgY29udHJvbGxlci4gIFRoZSBkZWZhdWx0IHJvbGUgaXM6CgogICAgLSBFcXVhbCAoT0ZQQ1JfUk9MRV9FUVVBTCksIHdoaWNoIGFsbG93cyB0aGUgY29udHJvbGxlciBhY2Nlc3MgdG8gYWxsCiAgICAgIE9wZW5GbG93IGZlYXR1cmVzLiBBbGwgY29udHJvbGxlcnMgaGF2ZSBlcXVhbCByZXNwb25zaWJpbGl0eS4KCiBUaGUgb3RoZXIgcG9zc2libGUgcm9sZXMgYXJlIGEgcmVsYXRlZCBwYWlyOgoKICAgIC0gTWFzdGVyIChPRlBDUl9ST0xFX01BU1RFUikgaXMgZXF1aXZhbGVudCB0byBFcXVhbCwgZXhjZXB0IHRoYXQgdGhlcmUKICAgICAgbWF5IGJlIGF0IG1vc3Qgb25lIE1hc3RlciBjb250cm9sbGVyIGF0IGEgdGltZTogd2hlbiBhIGNvbnRyb2xsZXIKICAgICAgY29uZmlndXJlcyBpdHNlbGYgYXMgTWFzdGVyLCBhbnkgZXhpc3RpbmcgTWFzdGVyIGlzIGRlbW90ZWQgdG8gdGhlCiAgICAgIFNsYXZlIHJvbGUuCgogICAgLSBTbGF2ZSAoT0ZQQ1JfUk9MRV9TTEFWRSkgYWxsb3dzIHRoZSBjb250cm9sbGVyIHJlYWQtb25seSBhY2Nlc3MgdG8KICAgICAgT3BlbkZsb3cgZmVhdHVyZXMuICBJbiBwYXJ0aWN1bGFyIGF0dGVtcHRzIHRvIG1vZGlmeSB0aGUgZmxvdyB0YWJsZQogICAgICB3aWxsIGJlIHJlamVjdGVkIHdpdGggYW4gT0ZQQlJDX0VQRVJNIGVycm9yLgoKICAgICAgU2xhdmUgY29udHJvbGxlcnMgZG8gbm90IHJlY2VpdmUgT0ZQVF9QQUNLRVRfSU4gb3IgT0ZQVF9GTE9XX1JFTU9WRUQKICAgICAgbWVzc2FnZXMsIGJ1dCB0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CgwKBARgAgESBIQSCCgKDQoFBGACAQYSBIQSCBcKDQoFBGACAQESBIQSGCMKDQoFBGACAQMSBIQSJicKDAoEBGACAhIEhRIIIAoNCgUEYAICBhIEhRIIFQoNCgUEYAICARIEhRIWGwoNCgUEYAICAxIEhRIeH2IGcHJvdG8zCubJAQoadm9sdGhhX3Byb3Rvcy9kZXZpY2UucHJvdG8SBnZvbHRoYRoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aGHZvbHRoYV9wcm90b3MvbWV0YS5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90byK/AgoKRGV2aWNlVHlwZRIOCgJpZBgBIAEoCVICaWQSGwoJdmVuZG9yX2lkGAUgASgJUgh2ZW5kb3JJZBIdCgp2ZW5kb3JfaWRzGAYgAygJUgl2ZW5kb3JJZHMSGAoHYWRhcHRlchgCIAEoCVIHYWRhcHRlchI3ChhhY2NlcHRzX2J1bGtfZmxvd191cGRhdGUYAyABKAhSFWFjY2VwdHNCdWxrRmxvd1VwZGF0ZRJECh9hY2NlcHRzX2FkZF9yZW1vdmVfZmxvd191cGRhdGVzGAQgASgIUhthY2NlcHRzQWRkUmVtb3ZlRmxvd1VwZGF0ZXMSTAojYWNjZXB0c19kaXJlY3RfbG9naWNhbF9mbG93c191cGRhdGUYByABKAhSH2FjY2VwdHNEaXJlY3RMb2dpY2FsRmxvd3NVcGRhdGUiNwoLRGV2aWNlVHlwZXMSKAoFaXRlbXMYASADKAsyEi52b2x0aGEuRGV2aWNlVHlwZVIFaXRlbXMiwAEKCFBtQ29uZmlnEhIKBG5hbWUYASABKAlSBG5hbWUSKwoEdHlwZRgCIAEoDjIXLnZvbHRoYS5QbUNvbmZpZy5QbVR5cGVSBHR5cGUSGAoHZW5hYmxlZBgDIAEoCFIHZW5hYmxlZBIfCgtzYW1wbGVfZnJlcRgEIAEoDVIKc2FtcGxlRnJlcSI4CgZQbVR5cGUSCwoHQ09VTlRFUhAAEgkKBUdBVUdFEAESCQoFU1RBVEUQAhILCgdDT05URVhUEAMikwEKDVBtR3JvdXBDb25maWcSHQoKZ3JvdXBfbmFtZRgBIAEoCVIJZ3JvdXBOYW1lEh0KCmdyb3VwX2ZyZXEYAiABKA1SCWdyb3VwRnJlcRIYCgdlbmFibGVkGAMgASgIUgdlbmFibGVkEioKB21ldHJpY3MYBCADKAsyEC52b2x0aGEuUG1Db25maWdSB21ldHJpY3MigQIKCVBtQ29uZmlncxIOCgJpZBgBIAEoCVICaWQSIQoMZGVmYXVsdF9mcmVxGAIgASgNUgtkZWZhdWx0RnJlcRIfCgdncm91cGVkGAMgASgIQgXo9s0dAVIHZ3JvdXBlZBIqCg1mcmVxX292ZXJyaWRlGAQgASgIQgXo9s0dAVIMZnJlcU92ZXJyaWRlEi0KBmdyb3VwcxgFIAMoCzIVLnZvbHRoYS5QbUdyb3VwQ29uZmlnUgZncm91cHMSKgoHbWV0cmljcxgGIAMoCzIQLnZvbHRoYS5QbUNvbmZpZ1IHbWV0cmljcxIZCghtYXhfc2tldxgHIAEoDVIHbWF4U2tldyKPAgoFSW1hZ2USEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgJUgd2ZXJzaW9uEhIKBGhhc2gYAyABKA1SBGhhc2gSKQoQaW5zdGFsbF9kYXRldGltZRgEIAEoCVIPaW5zdGFsbERhdGV0aW1lEhsKCWlzX2FjdGl2ZRgFIAEoCFIIaXNBY3RpdmUSIQoMaXNfY29tbWl0dGVkGAYgASgIUgtpc0NvbW1pdHRlZBIZCghpc192YWxpZBgHIAEoCFIHaXNWYWxpZBIQCgN1cmwYCCABKAlSA3VybBIWCgZ2ZW5kb3IYCSABKAlSBnZlbmRvchIUCgVjcmMzMhgKIAEoDVIFY3JjMzIi4wcKDUltYWdlRG93bmxvYWQSDgoCaWQYASABKAlSAmlkEhIKBG5hbWUYAiABKAlSBG5hbWUSEAoDdXJsGAMgASgJUgN1cmwSEAoDY3JjGAQgASgNUgNjcmMSTwoOZG93bmxvYWRfc3RhdGUYBSABKA4yKC52b2x0aGEuSW1hZ2VEb3dubG9hZC5JbWFnZURvd25sb2FkU3RhdGVSDWRvd25sb2FkU3RhdGUSIwoNaW1hZ2VfdmVyc2lvbhgGIAEoCVIMaW1hZ2VWZXJzaW9uEikKEGRvd25sb2FkZWRfYnl0ZXMYByABKA1SD2Rvd25sb2FkZWRCeXRlcxJICgZyZWFzb24YCCABKA4yMC52b2x0aGEuSW1hZ2VEb3dubG9hZC5JbWFnZURvd25sb2FkRmFpbHVyZVJlYXNvblIGcmVhc29uEicKD2FkZGl0aW9uYWxfaW5mbxgJIAEoCVIOYWRkaXRpb25hbEluZm8SHwoLc2F2ZV9jb25maWcYCiABKAhSCnNhdmVDb25maWcSGwoJbG9jYWxfZGlyGAsgASgJUghsb2NhbERpchJJCgtpbWFnZV9zdGF0ZRgMIAEoDjIoLnZvbHRoYS5JbWFnZURvd25sb2FkLkltYWdlQWN0aXZhdGVTdGF0ZVIKaW1hZ2VTdGF0ZRIbCglmaWxlX3NpemUYDSABKA1SCGZpbGVTaXplIrcBChJJbWFnZURvd25sb2FkU3RhdGUSFAoQRE9XTkxPQURfVU5LTk9XThAAEhYKEkRPV05MT0FEX1NVQ0NFRURFRBABEhYKEkRPV05MT0FEX1JFUVVFU1RFRBACEhQKEERPV05MT0FEX1NUQVJURUQQAxITCg9ET1dOTE9BRF9GQUlMRUQQBBIYChRET1dOTE9BRF9VTlNVUFBPUlRFRBAFEhYKEkRPV05MT0FEX0NBTkNFTExFRBAGIoYBChpJbWFnZURvd25sb2FkRmFpbHVyZVJlYXNvbhIMCghOT19FUlJPUhAAEg8KC0lOVkFMSURfVVJMEAESDwoLREVWSUNFX0JVU1kQAhIWChJJTlNVRkZJQ0lFTlRfU1BBQ0UQAxIRCg1VTktOT1dOX0VSUk9SEAQSDQoJQ0FOQ0VMTEVEEAUijAEKEkltYWdlQWN0aXZhdGVTdGF0ZRIRCg1JTUFHRV9VTktOT1dOEAASEgoOSU1BR0VfSU5BQ1RJVkUQARIUChBJTUFHRV9BQ1RJVkFUSU5HEAISEAoMSU1BR0VfQUNUSVZFEAMSEwoPSU1BR0VfUkVWRVJUSU5HEAQSEgoOSU1BR0VfUkVWRVJURUQQBSI9Cg5JbWFnZURvd25sb2FkcxIrCgVpdGVtcxgCIAMoCzIVLnZvbHRoYS5JbWFnZURvd25sb2FkUgVpdGVtcyItCgZJbWFnZXMSIwoFaW1hZ2UYASADKAsyDS52b2x0aGEuSW1hZ2VSBWltYWdlIrABCghPbnVJbWFnZRIYCgd2ZXJzaW9uGAEgASgJUgd2ZXJzaW9uEh4KCmlzQ29tbWl0ZWQYAiABKAhSCmlzQ29tbWl0ZWQSGgoIaXNBY3RpdmUYAyABKAhSCGlzQWN0aXZlEhgKB2lzVmFsaWQYBCABKAhSB2lzVmFsaWQSIAoLcHJvZHVjdENvZGUYBSABKAlSC3Byb2R1Y3RDb2RlEhIKBGhhc2gYBiABKAlSBGhhc2giMwoJT251SW1hZ2VzEiYKBWl0ZW1zGAEgAygLMhAudm9sdGhhLk9udUltYWdlUgVpdGVtcyJjChBEZXZpY2VJbWFnZVN0YXRlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSMgoKaW1hZ2VTdGF0ZRgCIAEoCzISLnZvbHRoYS5JbWFnZVN0YXRlUgppbWFnZVN0YXRlIuMHCgpJbWFnZVN0YXRlEhgKB3ZlcnNpb24YASABKAlSB3ZlcnNpb24STAoOZG93bmxvYWRfc3RhdGUYAiABKA4yJS52b2x0aGEuSW1hZ2VTdGF0ZS5JbWFnZURvd25sb2FkU3RhdGVSDWRvd25sb2FkU3RhdGUSPQoGcmVhc29uGAMgASgOMiUudm9sdGhhLkltYWdlU3RhdGUuSW1hZ2VGYWlsdXJlUmVhc29uUgZyZWFzb24SSAoLaW1hZ2Vfc3RhdGUYBCABKA4yJy52b2x0aGEuSW1hZ2VTdGF0ZS5JbWFnZUFjdGl2YXRpb25TdGF0ZVIKaW1hZ2VTdGF0ZSLQAQoSSW1hZ2VEb3dubG9hZFN0YXRlEhQKEERPV05MT0FEX1VOS05PV04QABIWChJET1dOTE9BRF9TVUNDRUVERUQQARIWChJET1dOTE9BRF9SRVFVRVNURUQQAhIUChBET1dOTE9BRF9TVEFSVEVEEAMSEwoPRE9XTkxPQURfRkFJTEVEEAQSGAoURE9XTkxPQURfVU5TVVBQT1JURUQQBRIXChNET1dOTE9BRF9DQU5DRUxMSU5HEAYSFgoSRE9XTkxPQURfQ0FOQ0VMTEVEEAci9AEKEkltYWdlRmFpbHVyZVJlYXNvbhIMCghOT19FUlJPUhAAEg8KC0lOVkFMSURfVVJMEAESDwoLREVWSUNFX0JVU1kQAhIWChJJTlNVRkZJQ0lFTlRfU1BBQ0UQAxIRCg1VTktOT1dOX0VSUk9SEAQSGAoUQ0FOQ0VMTEVEX09OX1JFUVVFU1QQBRIaChZDQU5DRUxMRURfT05fT05VX1NUQVRFEAYSGgoWVkVORE9SX0RFVklDRV9NSVNNQVRDSBAHEhcKE09NQ0lfVFJBTlNGRVJfRVJST1IQCBIYChRJTUFHRV9SRUZVU0VEX0JZX09OVRAJIpkCChRJbWFnZUFjdGl2YXRpb25TdGF0ZRIRCg1JTUFHRV9VTktOT1dOEAASEgoOSU1BR0VfSU5BQ1RJVkUQARIUChBJTUFHRV9BQ1RJVkFUSU5HEAISEAoMSU1BR0VfQUNUSVZFEAMSFAoQSU1BR0VfQ09NTUlUVElORxAEEhMKD0lNQUdFX0NPTU1JVFRFRBAFEh0KGUlNQUdFX0FDVElWQVRJT05fQUJPUlRJTkcQBhIcChhJTUFHRV9BQ1RJVkFUSU9OX0FCT1JURUQQBxIZChVJTUFHRV9DT01NSVRfQUJPUlRJTkcQCBIYChRJTUFHRV9DT01NSVRfQUJPUlRFRBAJEhUKEUlNQUdFX0RPV05MT0FESU5HEAoitwUKBFBvcnQSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhQKBWxhYmVsGAIgASgJUgVsYWJlbBIpCgR0eXBlGAMgASgOMhUudm9sdGhhLlBvcnQuUG9ydFR5cGVSBHR5cGUSOQoLYWRtaW5fc3RhdGUYBSABKA4yGC5jb21tb24uQWRtaW5TdGF0ZS5UeXBlc1IKYWRtaW5TdGF0ZRI5CgtvcGVyX3N0YXR1cxgGIAEoDjIYLmNvbW1vbi5PcGVyU3RhdHVzLlR5cGVzUgpvcGVyU3RhdHVzEhsKCWRldmljZV9pZBgHIAEoCVIIZGV2aWNlSWQSKwoFcGVlcnMYCCADKAsyFS52b2x0aGEuUG9ydC5QZWVyUG9ydFIFcGVlcnMSHQoKcnhfcGFja2V0cxgJIAEoBlIJcnhQYWNrZXRzEhkKCHJ4X2J5dGVzGAogASgGUgdyeEJ5dGVzEhsKCXJ4X2Vycm9ycxgLIAEoBlIIcnhFcnJvcnMSHQoKdHhfcGFja2V0cxgMIAEoBlIJdHhQYWNrZXRzEhkKCHR4X2J5dGVzGA0gASgGUgd0eEJ5dGVzEhsKCXR4X2Vycm9ycxgOIAEoBlIIdHhFcnJvcnMSMAoIb2ZwX3BvcnQYDyABKAsyFS5vcGVuZmxvd18xMy5vZnBfcG9ydFIHb2ZwUG9ydBpACghQZWVyUG9ydBIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhcKB3BvcnRfbm8YAiABKA1SBnBvcnRObyJzCghQb3J0VHlwZRILCgdVTktOT1dOEAASEAoMRVRIRVJORVRfTk5JEAESEAoMRVRIRVJORVRfVU5JEAISCwoHUE9OX09MVBADEgsKB1BPTl9PTlUQBBINCglWRU5FVF9PTFQQBRINCglWRU5FVF9PTlUQBiIrCgVQb3J0cxIiCgVpdGVtcxgBIAMoCzIMLnZvbHRoYS5Qb3J0UgVpdGVtcyKaCwoGRGV2aWNlEhUKAmlkGAEgASgJQgXo9s0dAVICaWQSGQoEdHlwZRgCIAEoCUIF6PbNHQFSBHR5cGUSGQoEcm9vdBgDIAEoCEIF6PbNHQFSBHJvb3QSIgoJcGFyZW50X2lkGAQgASgJQgXo9s0dAVIIcGFyZW50SWQSKwoOcGFyZW50X3BvcnRfbm8YFCABKA1CBej2zR0BUgxwYXJlbnRQb3J0Tm8SHQoGdmVuZG9yGAUgASgJQgXo9s0dAVIGdmVuZG9yEhsKBW1vZGVsGAYgASgJQgXo9s0dAVIFbW9kZWwSMAoQaGFyZHdhcmVfdmVyc2lvbhgHIAEoCUIF6PbNHQFSD2hhcmR3YXJlVmVyc2lvbhIwChBmaXJtd2FyZV92ZXJzaW9uGAggASgJQgXo9s0dAVIPZmlybXdhcmVWZXJzaW9uEi0KBmltYWdlcxgJIAEoCzIOLnZvbHRoYS5JbWFnZXNCBej2zR0BUgZpbWFnZXMSKgoNc2VyaWFsX251bWJlchgKIAEoCUIF6PbNHQFSDHNlcmlhbE51bWJlchIiCgl2ZW5kb3JfaWQYGCABKAlCBej2zR0BUgh2ZW5kb3JJZBIfCgdhZGFwdGVyGAsgASgJQgXo9s0dAVIHYWRhcHRlchISCgR2bGFuGAwgASgNUgR2bGFuEh8KC21hY19hZGRyZXNzGA0gASgJUgptYWNBZGRyZXNzEiMKDGlwdjRfYWRkcmVzcxgOIAEoCUgAUgtpcHY0QWRkcmVzcxIjCgxpcHY2X2FkZHJlc3MYDyABKAlIAFILaXB2NkFkZHJlc3MSJAoNaG9zdF9hbmRfcG9ydBgVIAEoCUgAUgtob3N0QW5kUG9ydBIdCgpleHRyYV9hcmdzGBcgASgJUglleHRyYUFyZ3MSQAoNcHJveHlfYWRkcmVzcxgTIAEoCzIbLnZvbHRoYS5EZXZpY2UuUHJveHlBZGRyZXNzUgxwcm94eUFkZHJlc3MSOQoLYWRtaW5fc3RhdGUYECABKA4yGC5jb21tb24uQWRtaW5TdGF0ZS5UeXBlc1IKYWRtaW5TdGF0ZRJACgtvcGVyX3N0YXR1cxgRIAEoDjIYLmNvbW1vbi5PcGVyU3RhdHVzLlR5cGVzQgXo9s0dAVIKb3BlclN0YXR1cxIdCgZyZWFzb24YFiABKAlCBej2zR0BUgZyZWFzb24SSQoOY29ubmVjdF9zdGF0dXMYEiABKA4yGy5jb21tb24uQ29ubmVjdFN0YXR1cy5UeXBlc0IF6PbNHQFSDWNvbm5lY3RTdGF0dXMSLAoGY3VzdG9tGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIGY3VzdG9tEjgKCnBtX2NvbmZpZ3MYgwEgASgLMhEudm9sdGhhLlBtQ29uZmlnc0IF4vbNHQBSCXBtQ29uZmlncxJMCg9pbWFnZV9kb3dubG9hZHMYhQEgAygLMhUudm9sdGhhLkltYWdlRG93bmxvYWRCC+L2zR0GCgRuYW1lUg5pbWFnZURvd25sb2FkcxqDAgoMUHJveHlBZGRyZXNzEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSHwoLZGV2aWNlX3R5cGUYAiABKAlSCmRldmljZVR5cGUSHQoKY2hhbm5lbF9pZBgDIAEoDVIJY2hhbm5lbElkEigKEGNoYW5uZWxfZ3JvdXBfaWQYBCABKA1SDmNoYW5uZWxHcm91cElkEi8KE2NoYW5uZWxfdGVybWluYXRpb24YBSABKAlSEmNoYW5uZWxUZXJtaW5hdGlvbhIVCgZvbnVfaWQYBiABKA1SBW9udUlkEiQKDm9udV9zZXNzaW9uX2lkGAcgASgNUgxvbnVTZXNzaW9uSWRCCQoHYWRkcmVzcyIvCgdEZXZpY2VzEiQKBWl0ZW1zGAEgAygLMg4udm9sdGhhLkRldmljZVIFaXRlbXMiqAMKFFNpbXVsYXRlQWxhcm1SZXF1ZXN0Eg4KAmlkGAEgASgJUgJpZBIcCglpbmRpY2F0b3IYAiABKAlSCWluZGljYXRvchIXCgdpbnRmX2lkGAMgASgJUgZpbnRm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BQQFAgEFEgNPBAoKDAoFBAUCAQESA08LEgoMCgUEBQIBAxIDTxUWCmIKBAQFAgISA1MEFBpVIGhhc2ggb2YgdGhlIGltYWdlIHRvIGJlIHZlcmlmaWVkIGFnYWluc3QKIERlcHJlY2F0ZWQgaW4gdm9sdGhhIDIuOCwgd2lsbCBiZSByZW1vdmVkCgoNCgUEBQICBBIEUwRPFwoMCgUEBQICBRIDUwQKCgwKBQQFAgIBEgNTCw8KDAoFBAUCAgMSA1MSEwpkCgQEBQIDEgNWBCAaKyBEZXByZWNhdGVkIGluIHZvbHRoYSAyLjgsIHdpbGwgYmUgcmVtb3ZlZAoiKiBjb21iaW5lZCBkYXRlIGFuZCB0aW1lIGV4cHJlc3NlZCBpbiBVVEMuCgoNCgUEBQIDBBIEVgRTFAoMCgUEBQIDBRIDVgQKCgwKBQQFAgMBEgNWCxsKDAoFBAUCAwMSA1YeHwqYAwoEBAUCBBIDXgQXGsICIFRoZSBhY3RpdmUgc29mdHdhcmUgaW1hZ2UgaXMgb25lIHRoYXQgaXMgY3VycmVudGx5IGxvYWRlZCBhbmQgZXhlY3V0aW5nCiBpbiB0aGUgT05VIG9yIGNpcmN1aXQgcGFjay4gVW5kZXIgbm9ybWFsIG9wZXJhdGlvbiwgb25lIHNvZnR3YXJlIGltYWdlCiBpcyBhbHdheXMgYWN0aXZlIHdoaWxlIHRoZSBvdGhlciBpcyBpbmFjdGl2ZS4gVW5kZXIgbm8gY2lyY3Vtc3RhbmNlcyBhcmUKIGJvdGggc29mdHdhcmUgaW1hZ2VzIGFsbG93ZWQgdG8gYmUgYWN0aXZlIGF0IHRoZSBzYW1lIHRpbWUKIERlcHJlY2F0ZWQgaW4gdm9sdGhhIDIuOCwgd2lsbCBiZSByZW1vdmVkCiIdIFRydWUgaWYgdGhlIGltYWdlIGlzIGFjdGl2ZQoyJyB1c2UgSVNPIDg2MDEgZm9ybWF0IGZvciBkYXRlIGFuZCB0aW1lCgoNCgUEBQIEBBIEXgRWIAoMCgUEBQIEBRIDXgQICgwKBQQFAgQBEgNeCRIKDAoFBAUCBAMSA14VFgqfAgoEBAUCBRIDZAQaGu8BIFRoZSBjb21taXR0ZWQgc29mdHdhcmUgaW1hZ2UgaXMgbG9hZGVkIGFuZCBleGVjdXRlZCB1cG9uIHJl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dG9zL2NvbW1vbi5wcm90byI7Cg9Db25maWdFdmVudFR5cGUiKAoFVHlwZXMSBwoDYWRkEAASCgoGcmVtb3ZlEAESCgoGdXBkYXRlEAIiaAoLQ29uZmlnRXZlbnQSMQoEdHlwZRgBIAEoDjIdLnZvbHRoYS5Db25maWdFdmVudFR5cGUuVHlwZXNSBHR5cGUSEgoEaGFzaBgCIAEoCVIEaGFzaBISCgRkYXRhGAMgASgJUgRkYXRhIioKDEtwaUV2ZW50VHlwZSIaCgVUeXBlcxIJCgVzbGljZRAAEgYKAnRzEAEiqwIKDk1ldHJpY01ldGFEYXRhEhQKBXRpdGxlGAEgASgJUgV0aXRsZRIOCgJ0cxgCIAEoAVICdHMSKgoRbG9naWNhbF9kZXZpY2VfaWQYAyABKAlSD2xvZ2ljYWxEZXZpY2VJZBIbCglzZXJpYWxfbm8YBCABKAlSCHNlcmlhbE5vEhsKCWRldmljZV9pZBgFIAEoCVIIZGV2aWNlSWQSPQoHY29udGV4dBgGIAMoCzIjLnZvbHRoYS5NZXRyaWNNZXRhRGF0YS5Db250ZXh0RW50cnlSB2NvbnRleHQSEgoEdXVpZBgHIAEoCVIEdXVpZBo6CgxDb250ZXh0RW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ASKPAQoQTWV0cmljVmFsdWVQYWlycxI/CgdtZXRyaWNzGAEgAygLMiUudm9sdGhhLk1ldHJpY1ZhbHVlUGFpcnMuTWV0cmljc0VudHJ5UgdtZXRyaWNzGjoKDE1ldHJpY3NFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBIsUBChFNZXRyaWNJbmZvcm1hdGlvbhIyCghtZXRhZGF0YRgBIAEoCzIWLnZvbHRoYS5NZXRyaWNNZXRhRGF0YVIIbWV0YWRhdGESQAoHbWV0cmljcxgCIAMoCzImLnZvbHRoYS5NZXRyaWNJbmZvcm1hdGlvbi5NZXRyaWNzRW50cnlSB21ldHJpY3MaOgoMTWV0cmljc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgCUgV2YWx1ZToCOAEi3QEKCEtwaUV2ZW50Ei4KBHR5cGUYASABKA4yGi52b2x0aGEuS3BpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEg4KAnRzGAIgASgCUgJ0cxI6CghwcmVmaXhlcxgDIAMoCzIeLnZvbHRoYS5LcGlFdmVudC5QcmVmaXhlc0VudHJ5UghwcmVmaXhlcxpVCg1QcmVmaXhlc0VudHJ5EhAKA2tleRgBIAEoCVIDa2V5Ei4KBXZhbHVlGAIgASgLMhgudm9sdGhhLk1ldHJpY1ZhbHVlUGFpcnNSBXZhbHVlOgI4ASKFAQoJS3BpRXZlbnQyEi4KBHR5cGUYASABKA4yGi52b2x0aGEuS3BpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEg4KAnRzGAIgASgBUgJ0cxI4CgpzbGljZV9kYXRhGAMgAygLMhkudm9sdGhhLk1ldHJpY0luZm9ybWF0aW9uUglzbGljZURhdGEi9AEKC0RldmljZUV2ZW50Eh8KC3Jlc291cmNlX2lkGAEgASgJUgpyZXNvdXJjZUlkEioKEWRldmljZV9ldmVudF9uYW1lGAIgASgJUg9kZXZpY2VFdmVudE5hbWUSIAoLZGVzY3JpcHRpb24YAyABKAlSC2Rlc2NyaXB0aW9uEjoKB2NvbnRleHQYBCADKAsyIC52b2x0aGEuRGV2aWNlRXZlbnQuQ29udGV4dEVudHJ5Ugdjb250ZXh0GjoKDENvbnRleHRFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBItsCCghSUENFdmVudBIQCgNycGMYASABKAlSA3JwYxIhCgxvcGVyYXRpb25faWQYAiABKAlSC29wZXJhdGlvbklkEhgKB3NlcnZpY2UYAyABKAlSB3NlcnZpY2USGQoIc3RhY2tfaWQYBCABKAlSB3N0YWNrSWQSHwoLcmVzb3VyY2VfaWQYBSABKAlSCnJlc291cmNlSWQSIAoLZGVzY3JpcHRpb24YBiABKAlSC2Rlc2NyaXB0aW9uEjcKB2NvbnRleHQYByADKAsyHS52b2x0aGEuUlBDRXZlbnQuQ29udGV4dEVudHJ5Ugdjb250ZXh0Ei0KBnN0YXR1cxgIIAEoCzIVLmNvbW1vbi5PcGVyYXRpb25SZXNwUgZzdGF0dXMaOgoMQ29udGV4dEVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEidgoNRXZlbnRDYXRlZ29yeSJlCgVUeXBlcxIRCg1DT01NVU5JQ0FUSU9OEAASDwoLRU5WSVJPTk1FTlQQARINCglFUVVJUE1FTlQQAhILCgdTRVJWSUNFEAMSDgoKUFJPQ0VTU0lORxAEEgwKCFNFQ1VSSVRZEAUiUgoQRXZlbnRTdWJDYXRlZ29yeSI+CgVUeXBlcxIHCgNQT04QABIHCgNPTFQQARIHCgNPTlQQAhIHCgNPTlUQAxIHCgNOTkkQBBIICgROT05FEAUiZgoJRXZlbnRUeXBlIlkKBVR5cGVzEhAKDENPTkZJR19FVkVOVBAAEg0KCUtQSV9FVkVOVBABEg4KCktQSV9FVkVOVDIQAhIQCgxERVZJQ0VfRVZFTlQQAxINCglSUENfRVZFTlQQBCLfAgoLRXZlbnRIZWFkZXISDgoCaWQYASABKAlSAmlkEjcKCGNhdGVnb3J5GAIgASgOMhsudm9sdGhhLkV2ZW50Q2F0ZWdvcnkuVHlwZXNSCGNhdGVnb3J5EkEKDHN1Yl9jYXRlZ29yeRgDIAEoDjIeLnZvbHRoYS5FdmVudFN1YkNhdGVnb3J5LlR5cGVzUgtzdWJDYXRlZ29yeRIrCgR0eXBlGAQgASgOMhcudm9sdGhhLkV2ZW50VHlwZS5UeXBlc1IEdHlwZRIhCgx0eXBlX3ZlcnNpb24YBSABKAlSC3R5cGVWZXJzaW9uEjcKCXJhaXNlZF90cxgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSCHJhaXNlZFRzEjsKC3JlcG9ydGVkX3RzGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIKcmVwb3J0ZWRUcyLMAgoFRXZlbnQSKwoGaGVhZGVyGAEgASgLMhMudm9sdGhhLkV2ZW50SGVhZGVyUgZoZWFkZXISOAoMY29uZmlnX2V2ZW50GAIgASgLMhMudm9sdGhhLkNvbmZpZ0V2ZW50SABSC2NvbmZpZ0V2ZW50Ei8KCWtwaV9ldmVudBgDIAEoCzIQLnZvbHRoYS5LcGlFdmVudEgAUghrcGlFdmVudBIyCgprcGlfZXZlbnQyGAQgASgLMhEudm9sdGhhLktwaUV2ZW50MkgAUglr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cyB0byBhbiBSUEMgRXZlbnQKCg0KBQQOAgUGEgSAAggQCg0KBQQOAgUBEgSAAhEaCg0KBQQOAgUDEgSAAh0eYgZwcm90bzMKgiEKHnZvbHRoYV9wcm90b3MvZXh0X2NvbmZpZy5wcm90bxIGY29uZmlnImkKC0FsYXJtQ29uZmlnElAKGG9udV9pdHVfcG9uX2FsYXJtX2NvbmZpZxgBIAEoCzIWLmNvbmZpZy5PbnVJdHVQb25BbGFybUgAUhRvbnVJdHVQb25BbGFybUNvbmZpZ0IICgZjb25maWcivgkKDk9udUl0dVBvbkFsYXJtEhUKBnBvbl9uaRgBIAEoB1IFcG9uTmkSFQoGb251X2lkGAIgASgHUgVvbnVJZBI5CghhbGFybV9pZBgDIAEoDjIeLmNvbmZpZy5PbnVJdHVQb25BbGFybS5BbGFybUlEUgdhbGFybUlkEmoKGWFsYXJtX3JlcG9ydGluZ19jb25kaXRpb24YBCABKA4yLi5jb25maWcuT251SXR1UG9uQWxhcm0uQWxhcm1SZXBvcnRpbmdDb25kaXRpb25SF2FsYXJtUmVwb3J0aW5nQ29uZGl0aW9uEmAKFXJhdGVfdGhyZXNob2xkX2NvbmZpZxgFIAEoCzIqLmNvbmZpZy5PbnVJdHVQb25BbGFybS5SYXRlVGhyZXNob2xkQ29uZmlnSABSE3JhdGVUaHJlc2hvbGRDb25maWcSVAoRcmF0ZV9yYW5nZV9jb25maWcYBiABKAsyJi5jb25maWcuT251SXR1UG9uQWxhcm0uUmF0ZVJhbmdlQ29uZmlnSABSD3JhdGVSYW5nZUNvbmZpZxJjChZ2YWx1ZV90aHJlc2hvbGRfY29uZmlnGAcgASgLMisuY29uZmlnLk9udUl0dVBvbkFsYXJtLlZhbHVlVGhyZXNob2xkQ29uZmlnSABSFHZhbHVlVGhyZXNob2xkQ29uZmlnGlwKCFNvYWtUaW1lEigKEGFjdGl2ZV9zb2FrX3RpbWUYASABKAdSDmFjdGl2ZVNvYWtUaW1lEiYKD2NsZWFyX3NvYWtfdGltZRgCIAEoB1INY2xlYXJTb2FrVGltZRq9AQoTUmF0ZVRocmVzaG9sZENvbmZpZxIyChVyYXRlX3RocmVzaG9sZF9yaXNpbmcYASABKAZSE3JhdGVUaHJlc2hvbGRSaXNpbmcSNAoWcmF0ZV90aHJlc2hvbGRfZmFsbGluZxgCIAEoBlIUcmF0ZVRocmVzaG9sZEZhbGxpbmcSPAoJc29ha190aW1lGAMgASgLMh8uY29uZmlnLk9udUl0dVBvbkFsYXJtLlNvYWtUaW1lUghzb2FrVGltZRqjAQoPUmF0ZVJhbmdlQ29uZmlnEigKEHJhdGVfcmFuZ2VfbG93ZXIYASABKAZSDnJhdGVSYW5nZUxvd2VyEigKEHJhdGVfcmFuZ2VfdXBwZXIYAiABKAZSDnJhdGVSYW5nZVVwcGVyEjwKCXNvYWtfdGltZRgDIAEoCzIfLmNvbmZpZy5PbnVJdHVQb25BbGFybS5Tb2FrVGltZVIIc29ha1RpbWUafQoUVmFsdWVUaHJlc2hvbGRDb25maWcSJwoPdGhyZXNob2xkX2xpbWl0GAEgASgGUg50aHJlc2hvbGRMaW1pdBI8Cglzb2FrX3RpbWUYAiABKAsyHy5jb25maWcuT251SXR1UG9uQWxhcm0uU29ha1RpbWVSCHNvYWtUaW1lIhkKB0FsYXJtSUQSDgoKUkRJX0VSUk9SUxAAIlIKF0FsYXJtUmVwb3J0aW5nQ29uZGl0aW9uEhIKDlJBVEVfVEhSRVNIT0xEEAASDgoKUkFURV9SQU5HRRABEhMKD1ZBTFVFX1RIUkVTSE9MRBACQggKBmNvbmZpZ0JJChNvcmcub3BlbmNvcmQudm9sdGhhWjJnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjQvZ28vZXh0L2NvbmZpZ0rYFQoGEgQNAEUBCtEECgEMEgMNABIaxgQgQ29weXJpZ2h0IChjKSAyMDIwIE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNF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MsEMIFByb3RvY29sIEJ1ZmZlcnMgLSBHb29nbGUncyBkYXRhIGludGVyY2hhbmdlIGZvcm1hdAogQ29weXJpZ2h0IDIwMDggR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzLwoKIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogbWV0OgoKICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCiBkaXN0cmlidXRpb24uCiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KCiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKCAoBAhIDIAAYCggKAQgSAyIAOwoJCgIIJRIDIgA7CggKAQgSAyMAPgoJCgIICxIDIwA+CggKAQgSAyQALAoJCgIIARIDJAAsCggKAQgSAyUAKwoJCgIICBIDJQArCggKAQgSAyYAIgoJCgIIChIDJgAiCggKAQgSAycAIQoJCgIIJBIDJwAhCggKAQgSAygAHwoJCgIIHxIDKAAfCvsCCgIEABIDMwAQGu8CIEEgZ2VuZXJpYyBlbXB0eSBtZXNzYWdlIHRoYXQgeW91IGNhbiByZS11c2UgdG8gYXZvaWQgZGVmaW5pbmcgZHVwbGljYXRlZAogZW1wdHkgbWVzc2FnZXMgaW4geW91ciBBUElzLiBBIHR5cGljYWwgZXhhbXBsZSBpcyB0byB1c2UgaXQgYXMgdGhlIHJlcXVlc3QKIG9yIHRoZSByZXNwb25zZSB0eXBlIG9mIGFuIEFQSSBtZXRob2QuIEZvciBpbnN0YW5jZToKCiAgICAgc2VydmljZSBGb28gewogICAgICAgcnBjIEJhcihnb29nbGUucHJvdG9idWYuRW1wdHkpIHJldHVybnMgKGdvb2dsZS5wcm90b2J1Zi5FbXB0eSk7CiAgICAgfQoKIFRoZSBKU09OIHJlcHJlc2VudGF0aW9uIGZvciBgRW1wdHlgIGlzIGVtcHR5IEpTT04gb2JqZWN0IGB7fWAuCgoKCgMEAAESAzMIDWIGcHJvdG8zCt+xAQoedm9sdGhhX3Byb3Rvcy9leHRlbnNpb25zLnByb3RvEglleHRlbnNpb24aHnZvbHRoYV9wcm90b3MvZXh0X2NvbmZpZy5wcm90bxobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvIjYKEkdldERpc3RhbmNlUmVxdWVzdBIgCgtvbnVEZXZpY2VJZBgBIAEoCVILb251RGV2aWNlSWQiMQoTR2V0RGlzdGFuY2VSZXNwb25zZRIaCghkaXN0YW5jZRgBIAEoDVIIZGlzdGFuY2UiMgoUR2V0T251VW5pSW5mb1JlcXVlc3QSGgoIdW5pSW5kZXgYASABKA1SCHVuaUluZGV4IuEEChVHZXRPbnVVbmlJbmZvUmVzcG9uc2USUAoIYWRtU3RhdGUYASABKA4yNC5leHRlbnNpb24uR2V0T251VW5pSW5mb1Jlc3BvbnNlLkFkbWluaXN0cmF0aXZlU3RhdGVSCGFkbVN0YXRlEk8KCW9wZXJTdGF0ZRgCIAEoDjIxLmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVzcG9uc2UuT3BlcmF0aW9uYWxTdGF0ZVIJb3BlclN0YXRlEk8KCWNvbmZpZ0luZBgDIAEoDjIxLmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVzcG9uc2UuQ29uZmlndXJhdGlvbkluZFIJY29uZmlnSW5kIsIBChBDb25maWd1cmF0aW9uSW5kEgoKBlVOS09XThAAEhIKDlRFTl9CQVNFX1RfRkRYEAESFgoSSFVORFJFRF9CQVNFX1RfRkRYEAISGAoUR0lHQUJJVF9FVEhFUk5FVF9GRFgQAxIWChJURU5fR19FVEhFUk5FVF9GRFgQBBISCg5URU5fQkFTRV9UX0hEWBAFEhYKEkhVTkRSRURfQkFTRV9UX0hEWBAGEhgKFEdJR0FCSVRfRVRIRVJORVRfSERYEAciRwoTQWRtaW5pc3RyYXRpdmVTdGF0ZRIWChJBRE1TVEFURV9VTkRFRklORUQQABIKCgZMT0NLRUQQARIMCghVTkxPQ0tFRBACIkYKEE9wZXJhdGlvbmFsU3RhdGUSFwoTT1BFUlNUQVRFX1VOREVGSU5FRBAAEgsKB0VOQUJMRUQQARIMCghESVNBQkxFRBACIrcBChJHZXRPbHRQb3J0Q291bnRlcnMSFgoGcG9ydE5vGAEgASgNUgZwb3J0Tm8SQgoIcG9ydFR5cGUYAiABKA4yJi5leHRlbnNpb24uR2V0T2x0UG9ydENvdW50ZXJzLlBvcnRUeXBlUghwb3J0VHlwZSJFCghQb3J0VHlwZRIQCgxQb3J0X1VOS05PV04QABIVChFQb3J0X0VUSEVSTkVUX05OSRABEhAKDFBvcnRfUE9OX09MVBACIswDChpHZXRPbHRQb3J0Q291bnRlcnNSZXNwb25zZRIYCgd0eEJ5dGVzGAEgASgEUgd0eEJ5dGVzEhgKB3J4Qnl0ZXMYAiABKARSB3J4Qnl0ZXMSHAoJdHhQYWNrZXRzGAMgASgEUgl0eFBhY2tldHMSHAoJcnhQYWNrZXRzGAQgASgEUglyeFBhY2tldHMSJgoOdHhFcnJvclBhY2tldHMYBSABKARSDnR4RXJyb3JQYWNrZXRzEiYKDnJ4RXJyb3JQYWNrZXRzGAYgASgEUg5yeEVycm9yUGFja2V0cxImCg50eEJjYXN0UGFja2V0cxgHIAEoBFIOdHhCY2FzdFBhY2tldHMSJgoOcnhCY2FzdFBhY2tldHMYCCABKARSDnJ4QmNhc3RQYWNrZXRzEiYKDnR4VWNhc3RQYWNrZXRzGAkgASgEUg50eFVjYXN0UGFja2V0cxImCg5yeFVjYXN0UGFja2V0cxgKIAEoBFIOcnhVY2FzdFBhY2tldHMSJgoOdHhNY2FzdFBhY2tldHMYCyABKARSDnR4TWNhc3RQYWNrZXRzEiYKDnJ4TWNhc3RQYWNrZXRzGAwgASgEUg5yeE1jYXN0UGFja2V0cyJEChRHZXRPbnVQb25PcHRpY2FsSW5mbxIsCgVlbXB0eRgBIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIFZW1wdHkihAIKHEdldE9udVBvbk9wdGljYWxJbmZvUmVzcG9uc2USKgoQcG93ZXJGZWVkVm9sdGFnZRgBIAEoAlIQcG93ZXJGZWVkVm9sdGFnZRIyChRyZWNlaXZlZE9wdGljYWxQb3dlchgCIAEoAlIUcmVjZWl2ZWRPcHRpY2FsUG93ZXISNgoWbWVhbk9wdGljYWxMYXVuY2hQb3dlchgDIAEoAlIWbWVhbk9wdGljYWxMYXVuY2hQb3dlchIqChBsYXNlckJpYXNDdXJyZW50GAQgASgCUhBsYXNlckJpYXNDdXJyZW50EiAKC3RlbXBlcmF0dXJlGAUgASgCUgt0ZW1wZXJhdHVyZSKvAQofR2V0T251RXRoZXJuZXRCcmlkZ2VQb3J0SGlzdG9yeRJSCglkaXJlY3Rpb24YASABKA4yNC5leHRlbnNpb24uR2V0T251RXRoZXJuZXRCcmlkZ2VQb3J0SGlzdG9yeS5EaXJlY3Rpb25SCWRpcmVjdGlvbiI4CglEaXJlY3Rpb24SDQoJVU5ERUZJTkVEEAASDAoIVVBTVFJFQU0QARIOCgpET1dOU1RSRUFNEAIikwUKJ0dldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnlSZXNwb25zZRIeCgpkcm9wRXZlbnRzGAEgASgNUgpkcm9wRXZlbnRzEhYKBm9jdGV0cxgCIAEoDVIGb2N0ZXRzEhgKB3BhY2tldHMYAyABKA1SB3BhY2tldHMSKgoQYnJvYWRjYXN0UGFja2V0cxgEIAEoDVIQYnJvYWRjYXN0UGFja2V0cxIqChBtdWx0aWNhc3RQYWNrZXRzGAUgASgNUhBtdWx0aWNhc3RQYWNrZXRzEiwKEWNyY0Vycm9yZWRQYWNrZXRzGAYgASgNUhFjcmNFcnJvcmVkUGFja2V0cxIqChB1bmRlcnNpemVQYWNrZXRzGAcgASgNUhB1bmRlcnNpemVQYWNrZXRzEigKD292ZXJzaXplUGFja2V0cxgIIAEoDVIPb3ZlcnNpemVQYWNrZXRzEigKD3BhY2tldHM2NG9jdGV0cxgJIAEoDVIPcGFja2V0czY0b2N0ZXRzEjIKFHBhY2tldHM2NVRvMTI3b2N0ZXRzGAogASgNUhRwYWNrZXRzNjVUbzEyN29jdGV0cxI0ChVwYWNrZXRzMTI4VG8yNTVPY3RldHMYCyABKA1SFXBhY2tldHMxMjhUbzI1NU9jdGV0cxI0ChVwYWNrZXRzMjU2VG81MTFvY3RldHMYDCABKA1SFXBhY2tldHMyNTZUbzUxMW9jdGV0cxI2ChZwYWNrZXRzNTEyVG8xMDIzb2N0ZXRzGA0gASgNUhZwYWNrZXRzNTEyVG8xMDIzb2N0ZXRzEjgKF3BhY2tldHMxMDI0VG8xNTE4b2N0ZXRzGA4gASgNUhdwYWNrZXRzMTAyNFRvMTUxOG9jdGV0cyJAChBHZXRPbnVGZWNIaXN0b3J5EiwKBWVtcHR5GAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgVlbXB0eSLyAQoYR2V0T251RmVjSGlzdG9yeVJlc3BvbnNlEiYKDmNvcnJlY3RlZEJ5dGVzGAEgASgNUg5jb3JyZWN0ZWRCeXRlcxIuChJjb3JyZWN0ZWRDb2RlV29yZHMYAiABKA1SEmNvcnJlY3RlZENvZGVXb3JkcxIeCgpmZWNTZWNvbmRzGAMgASgNUgpmZWNTZWNvbmRzEiYKDnRvdGFsQ29kZVdvcmRzGAQgASgNUg50b3RhbENvZGVXb3JkcxI2ChZ1bmNvcnJlY3RhYmxlQ29kZVdvcmRzGAUgASgNUhZ1bmNvcnJlY3RhYmxlQ29kZVdvcmRzIkcKFUdldE9udUNvdW50ZXJzUmVxdWVzdBIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZCI9ChlHZXRPbnVPTUNJQ291bnRlcnNSZXF1ZXN0EiAKC29udURldmljZUlkGAEgASgJUgtvbnVEZXZpY2VJZCJDChFHZXRSeFBvd2VyUmVxdWVzdBIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZCLkDAoWR2V0T251Q291bnRlcnNSZXNwb25zZRIZCgdpbnRmX2lkGAEgASgHSABSBmludGZJZBIXCgZvbnVfaWQYAiABKAdIAVIFb251SWQSJwoOcG9zaXRpdmVfZHJpZnQYAyABKAZIAlINcG9zaXRpdmVEcmlmdBInCg5uZWdhdGl2ZV9kcmlmdBgEIAEoBkgDUg1uZWdhdGl2ZURyaWZ0EjoKGGRlbGltaXRlcl9taXNzX2RldGVjdGlvbhgFIAEoBkgEUhZkZWxpbWl0ZXJNaXNzRGV0ZWN0aW9uEh8KCmJpcF9lcnJvcnMYBiABKAZIBVIJYmlwRXJyb3JzEh0KCWJpcF91bml0cxgHIAEoBkgGUghiaXBVbml0cxI0ChVmZWNfY29ycmVjdGVkX3N5bWJvbHMYCCABKAZIB1ITZmVjQ29ycmVjdGVkU3ltYm9scxI4ChdmZWNfY29kZXdvcmRzX2NvcnJlY3RlZBgJIAEoBkgIUhVmZWNDb2Rld29yZHNDb3JyZWN0ZWQSQAobZmVjX2NvZGV3b3Jkc191bmNvcnJlY3RhYmxlGAogASgGSAlSGWZlY0NvZGV3b3Jkc1VuY29ycmVjdGFibGUSJQoNZmVjX2NvZGV3b3JkcxgLIAEoBkgKUgxmZWNDb2Rld29yZHMSMAoTZmVjX2NvcnJlY3RlZF91bml0cxgMIAEoBkgLUhFmZWNDb3JyZWN0ZWRVbml0cxIoCg94Z2VtX2tleV9lcnJvcnMYDSABKAZIDFINeGdlbUtleUVycm9ycxIdCgl4Z2VtX2xvc3MYDiABKAZIDVIIeGdlbUxvc3MSKAoPcnhfcGxvYW1zX2Vycm9yGA8gASgGSA5SDXJ4UGxvYW1zRXJyb3ISLQoScnhfcGxvYW1zX25vbl9pZGxlGBAgASgGSA9SD3J4UGxvYW1zTm9uSWRsZRIZCgdyeF9vbWNpGBEgASgGSBBSBnJ4T21jaRIZCgd0eF9vbWNpGBIgASgGSBFSBnR4T21jaRI6ChlyeF9vbWNpX3BhY2tldHNfY3JjX2Vycm9yGBMgASgGSBJSFXJ4T21jaVBhY2tldHNDcmNFcnJvchIbCghyeF9ieXRlcxgUIAEoBkgTUgdyeEJ5dGVzEh8KCnJ4X3BhY2tldHMYFSABKAZIFFIJcnhQYWNrZXRzEhsKCHR4X2J5dGVzGBYgASgGSBVSB3R4Qnl0ZXMSHwoKdHhfcGFja2V0cxgXIAEoBkgWUgl0eFBhY2tldHMSIwoMYmVyX3JlcG9ydGVkGBggASgGSBdSC2JlclJlcG9ydGVkEiEKC2xjZGdfZXJyb3JzGBkgASgGSBhSCmxjZGdFcnJvcnMSHwoKcmRpX2Vycm9ycxgaIAEoBkgZUglyZGlFcnJvcnMSHgoJdGltZXN0YW1wGBsgASgHSBpSCXRpbWVzdGFtcEIMCgppc19pbnRmX2lkQgsKCWlzX29udV9pZEITChFpc19wb3NpdGl2ZV9kcmlmdEITChFpc19uZWdhdGl2ZV9kcmlmdEIdChtpc19kZWxpbWl0ZXJfbWlzc19kZXRlY3Rpb25CDwoNaXNfYmlwX2Vycm9yc0IOCgxpc19iaXBfdW5pdHNCGgoYaXNfZmVjX2NvcnJlY3RlZF9zeW1ib2xzQhwKGmlzX2ZlY19jb2Rld29yZHNfY29ycmVjdGVkQiAKHmlzX2ZlY19jb2Rld29yZHNfdW5jb3JyZWN0YWJsZUISChBpc19mZWNfY29kZXdvcmRzQhgKFmlzX2ZlY19jb3JyZWN0ZWRfdW5pdHNCFAoSaXNfeGdlbV9rZXlfZXJyb3JzQg4KDGlzX3hnZW1fbG9zc0IUChJpc19yeF9wbG9hbXNfZXJyb3JCFwoVaXNfcnhfcGxvYW1zX25vbl9pZGxlQgwKCmlzX3J4X29tY2lCDAoKaXNfdHhfb21jaUIeChxpc19yeF9vbWNpX3BhY2tldHNfY3JjX2Vycm9yQg0KC2lzX3J4X2J5dGVzQg8KDWlzX3J4X3BhY2tldHNCDQoLaXNfdHhfYnl0ZXNCDwoNaXNfdHhfcGFja2V0c0IRCg9pc19iZXJfcmVwb3J0ZWRCEAoOaXNfbGNkZ19lcnJvcnNCDwoNaXNfcmRpX2Vycm9yc0IOCgxpc190aW1lc3RhbXAi+wcKGkdldE9udU9NQ0lDb3VudGVyc1Jlc3BvbnNlEiEKC2Ryb3BfZXZlbnRzGAEgASgGSABSCmRyb3BFdmVudHMSGAoGb2N0ZXRzGAIgASgGSAFSBm9jdGV0cxIYCgZmcmFtZXMYAyABKAZIAlIGZnJhbWVzEisKEGJyb2FkY2FzdF9mcmFtZXMYBCABKAZIA1IPYnJvYWRjYXN0RnJhbWVzEisKEG11bHRpY2FzdF9mcmFtZXMYBSABKAZIBFIPbXVsdGljYXN0RnJhbWVzEi4KEmNyY19lcnJvcmVkX2ZyYW1lcxgGIAEoBkgFUhBjcmNFcnJvcmVkRnJhbWVzEisKEHVuZGVyc2l6ZV9mcmFtZXMYByABKAZIBlIPdW5kZXJzaXplRnJhbWVzEikKD292ZXJzaXplX2ZyYW1lcxgIIAEoBkgHUg5vdmVyc2l6ZUZyYW1lcxIqChBmcmFtZXNfNjRfb2N0ZXRzGAkgASgGSAhSDmZyYW1lczY0T2N0ZXRzEjYKF2ZyYW1lc182NV90b18xMjdfb2N0ZXRzGAogASgGSAlSE2ZyYW1lczY1VG8xMjdPY3RldHMSOAoYZnJhbWVzXzEyOF90b18yNTVfb2N0ZXRzGAsgASgGSApSFGZyYW1lczEyOFRvMjU1T2N0ZXRzEjgKGGZyYW1lc18yNTZfdG9fNTExX29jdGV0cxgMIAEoBkgLUhRmcmFtZXMyNTZUbzUxMU9jdGV0cxI6ChlmcmFtZXNfNTEyX3RvXzEwMjNfb2N0ZXRzGA0gASgGSAxSFWZyYW1lczUxMlRvMTAyM09jdGV0cxI8ChpmcmFtZXNfMTAyNF90b18xNTE4X29jdGV0cxgOIAEoBkgNUhZmcmFtZXMxMDI0VG8xNTE4T2N0ZXRzQhAKDmlzX2Ryb3BfZXZlbnRzQgsKCWlzX29jdGV0c0ILCglpc19mcmFtZXNCFQoTaXNfYnJvYWRjYXN0X2ZyYW1lc0IVChNpc19tdWx0aWNhc3RfZnJhbWVzQhcKFWlzX2NyY19lcnJvcmVkX2ZyYW1lc0IVChNpc191bmRlcnNpemVfZnJhbWVzQhQKEmlzX292ZXJzaXplX2ZyYW1lc0IVChNpc19mcmFtZXNfNjRfb2N0ZXRzQhwKGmlzX2ZyYW1lc182NV90b18xMjdfb2N0ZXRzQh0KG2lzX2ZyYW1lc18xMjhfdG9fMjU1X29jdGV0c0IdChtpc19mcmFtZXNfMjU2X3RvXzUxMV9vY3RldHNCHgocaXNfZnJhbWVzXzUxMl90b18xMDIzX29jdGV0c0IfCh1pc19mcmFtZXNfMTAyNF90b18xNTE4X29jdGV0cyKYAQoSR2V0UnhQb3dlclJlc3BvbnNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEh8KC2ZhaWxfcmVhc29uGAQgASgJUgpmYWlsUmVhc29uEhkKCHJ4X3Bvd2VyGAUgASgBUgdyeFBvd2VyIvcECg9HZXRWYWx1ZVJlcXVlc3QSOwoIZGlzdGFuY2UYASABKAsyHS5leHRlbnNpb24uR2V0RGlzdGFuY2VSZXF1ZXN0SABSCGRpc3RhbmNlEjsKB3VuaUluZm8YAiABKAsyHy5leHRlbnNpb24uR2V0T251VW5pSW5mb1JlcXVlc3RIAFIHdW5pSW5mbxJBCgtvbHRQb3J0SW5mbxgDIAEoCzIdLmV4dGVuc2lvbi5HZXRPbHRQb3J0Q291bnRlcnNIAFILb2x0UG9ydEluZm8SSQoOb251T3B0aWNhbEluZm8YBCABKAsyHy5leHRlbnNpb24uR2V0T251UG9uT3B0aWNhbEluZm9IAFIOb251T3B0aWNhbEluZm8SUgoNZXRoQnJpZGdlUG9ydBgFIAEoCzIqLmV4dGVuc2lvbi5HZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5SABSDWV0aEJyaWRnZVBvcnQSPQoKZmVjSGlzdG9yeRgGIAEoCzIbLmV4dGVuc2lvbi5HZXRPbnVGZWNIaXN0b3J5SABSCmZlY0hpc3RvcnkSQgoKb251UG9uSW5mbxgHIAEoCzIgLmV4dGVuc2lvbi5HZXRPbnVDb3VudGVyc1JlcXVlc3RIAFIKb251UG9uSW5mbxJACgdvbnVJbmZvGAggASgLMiQuZXh0ZW5zaW9uLkdldE9udU9NQ0lDb3VudGVyc1JlcXVlc3RIAFIHb251SW5mbxI4CgdyeFBvd2VyGAkgASgLMhwuZXh0ZW5zaW9uLkdldFJ4UG93ZXJSZXF1ZXN0SABSB3J4UG93ZXJCCQoHcmVxdWVzdCKmCAoQR2V0VmFsdWVSZXNwb25zZRI6CgZzdGF0dXMYASABKA4yIi5leHRlbnNpb24uR2V0VmFsdWVSZXNwb25zZS5TdGF0dXNSBnN0YXR1cxJFCgllcnJSZWFzb24YAiABKA4yJy5leHRlbnNpb24uR2V0VmFsdWVSZXNwb25zZS5FcnJvclJlYXNvblIJZXJyUmVhc29uEjwKCGRpc3RhbmNlGAMgASgLMh4uZXh0ZW5zaW9uLkdldERpc3RhbmNlUmVzcG9uc2VIAFIIZGlzdGFuY2USPAoHdW5pSW5mbxgEIAEoCzIgLmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVzcG9uc2VIAFIHdW5pSW5mbxJLCgxwb3J0Q291dG5lcnMYBSABKAsyJS5leHRlbnNpb24uR2V0T2x0UG9ydENvdW50ZXJzUmVzcG9uc2VIAFIMcG9ydENvdXRuZXJzElEKDm9udU9wdGljYWxJbmZvGAYgASgLMicuZXh0ZW5zaW9uLkdldE9udVBvbk9wdGljYWxJbmZvUmVzcG9uc2VIAFIOb251T3B0aWNhbEluZm8SYgoRZXRoQnJpZGdlUG9ydEluZm8YByABKAsyMi5leHRlbnNpb24uR2V0T251RXRoZXJuZXRCcmlkZ2VQb3J0SGlzdG9yeVJlc3BvbnNlSABSEWV0aEJyaWRnZVBvcnRJbmZvEkUKCmZlY0hpc3RvcnkYCCABKAsyIy5leHRlbnNpb24uR2V0T251RmVjSGlzdG9yeVJlc3BvbnNlSABSCmZlY0hpc3RvcnkSSwoOb251UG9uQ291bnRlcnMYCSABKAsyIS5leHRlbnNpb24uR2V0T251Q291bnRlcnNSZXNwb25zZUgAUg5vbnVQb25Db3VudGVycxJRCg9vbnVPTUNJQ291bnRlcnMYCiABKAsyJS5leHRlbnNpb24uR2V0T251T01DSUNvdW50ZXJzUmVzcG9uc2VIAFIPb251T01DSUNvdW50ZXJzEjkKB3J4UG93ZXIYCyABKAsyHS5leHRlbnNpb24uR2V0UnhQb3dlclJlc3BvbnNlSABSB3J4UG93ZXIiMQoGU3RhdHVzEhQKEFNUQVRVU19VTkRFRklORUQQABIGCgJPSxABEgkKBUVSUk9SEAIirQEKC0Vycm9yUmVhc29uEhQKEFJFQVNPTl9VTkRFRklORUQQABIPCgtVTlNVUFBPUlRFRBABEhUKEUlOVkFMSURfREVWSUNFX0lEEAISFQoRSU5WQUxJRF9QT1JUX1RZUEUQAxILCgdUSU1FT1VUEAQSFAoQSU5WQUxJRF9SRVFfVFlQRRAFEhIKDklOVEVSTkFMX0VSUk9SEAYSEgoOSU5WQUxJRF9ERVZJQ0UQB0IKCghyZXNwb25zZSJWCg9TZXRWYWx1ZVJlcXVlc3QSOAoMYWxhcm1fY29uZmlnGAEgASgLMhMuY29uZmlnLkFsYXJtQ29uZmlnSABSC2FsYXJtQ29uZmlnQgkKB3JlcXVlc3Qi/gEKEFNldFZhbHVlUmVzcG9uc2USOgoGc3RhdHVzGAEgASgOMiIuZXh0ZW5zaW9uLlNldFZhbHVlUmVzcG9uc2UuU3RhdHVzUgZzdGF0dXMSRQoJZXJyUmVhc29uGAIgASgOMicuZXh0ZW5zaW9uLlNldFZhbHVlUmVzcG9uc2UuRXJyb3JSZWFzb25SCWVyclJlYXNvbiIxCgZTdGF0dXMSFAoQU1RBVFVTX1VOREVGSU5FRBAAEgYKAk9LEAESCQoFRVJST1IQAiI0CgtFcnJvclJlYXNvbhIUChBSRUFTT05fVU5ERUZJTkVEEAASDwoLVU5TVVBQT1JURUQQASJpChVTaW5nbGVHZXRWYWx1ZVJlcXVlc3QSGgoIdGFyZ2V0SWQYASABKAlSCHRhcmdldElkEjQKB3JlcXVlc3QYAiABKAsyGi5leHRlbnNpb24uR2V0VmFsdWVSZXF1ZXN0UgdyZXF1ZXN0IlEKFlNpbmdsZUdldFZhbHVlUmVzcG9uc2USNwoIcmVzcG9uc2UYASABKAsyGy5leHRlbnNpb24uR2V0VmFsdWVSZXNwb25zZVIIcmVzcG9uc2UiaQoVU2luZ2xlU2V0VmFsdWVSZXF1ZXN0EhoKCHRhcmdldElkGAEgASgJUgh0YXJnZXRJZBI0CgdyZXF1ZXN0GAIgASgLMhouZXh0ZW5zaW9uLlNldFZhbHVlUmVxdWVzdFIHcmVxdWVzdCJRChZTaW5nbGVTZXRWYWx1ZVJlc3BvbnNlEjcKCHJlc3BvbnNlGAEgASgLMhsuZXh0ZW5zaW9uLlNldFZhbHVlUmVzcG9uc2VSCHJlc3BvbnNlMrMBCglFeHRlbnNpb24SUgoLR2V0RXh0VmFsdWUSIC5leHRlbnNpb24uU2luZ2xlR2V0VmFsdWVSZXF1ZXN0GiEuZXh0ZW5zaW9uLlNpbmdsZUdldFZhbHVlUmVzcG9uc2USUgoLU2V0RXh0VmFsdWUSIC5leHRlbnNpb24uU2luZ2xlU2V0VmFsdWVSZXF1ZXN0GiEuZXh0ZW5zaW9uLlNpbmdsZVNldFZhbHVlUmVzcG9uc2VCUgodb3JnLm9wZW5jb3JkLnZvbHRoYS5leHRlbnNpb25aMWdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NC9nby9leHRlbnNpb25Kw20KBxIFDgCLAwEK0QQKAQwSAw4AEjLGBCBDb3B5cmlnaHQgKGMpIDIwMTggT3BlbiBOZXR3b3JraW5nIEZvdW5kYXRpb24KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgoICgEIEgMQAEgKCQoCCAsSAxAASAoICgEIEgMRADYKCQoCCAESAxEANgoICgECEgMTABIKCQoCAwASAxUALwoJCgIKABIDFQcNCgkKAgMBEgMWACUKCgoCBAASBBgAGgEKCgoDBAABEgMYCBoKCwoEBAACABIDGQQbCg0KBQQAAgAEEgQZBBgcCgwKBQQAAgAFEgMZBAoKDAoFBAACAAESAxkLFgoMCgUEAAIAAxIDGRkaCgoKAgQBEgQcAB4BCgoKAwQBARIDHAgbCiEK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b2x0aGEgaW5zdGFuY2UKCgwKBQYAAgABEgMdCBcKDAoFBgACAAISAx0YLQoMCgUGAAIAAxIDHThECg0KBQYAAgAEEgQeCCAKChEKCQYAAgAEsMq8IhIEHgggCmIGcHJvdG8zCrcYCiN2b2x0aGFfcHJvdG9zL2lldGZfaW50ZXJmYWNlcy5wcm90bxIEaWV0ZiJECgpJbnRlcmZhY2VzEjYKDmFsbF9pbnRlcmZhY2VzGAEgAygLMg8uaWV0Zi5JbnRlcmZhY2VSDWFsbEludGVyZmFjZXMikgIKCUludGVyZmFjZRISCgRuYW1lGAEgASgJUgRuYW1lEiAKC2Rlc2NyaXB0aW9uGAIgASgJUgtkZXNjcmlwdGlvbhISCgR0eXBlGAMgASgJUgR0eXBlEhgKB2VuYWJsZWQYBCABKAhSB2VuYWJsZWQSYAoYbGlua191cF9kb3duX3RyYXBfZW5hYmxlGAUgASgOMiguaWV0Zi5JbnRlcmZhY2UuTGlua1VwRG93blRyYXBFbmFibGVUeXBlUhRsaW5rVXBEb3duVHJhcEVuYWJsZSI/ChhMaW5rVXBEb3duVHJhcEVuYWJsZVR5cGUSEQoNVFJBUF9ESVNBQkxFRBAAEhAKDFRSQVBfRU5BQkxFRBABIkwKD0ludGVyZmFjZXNTdGF0ZRI5Cg1hbGxfaW50ZXJmYWNzGAEgAygLMhQuaWV0Zi5JbnRlcmZhY2VTdGF0ZVIMYWxsSW50ZXJmYWNzIsAECg5JbnRlcmZhY2VTdGF0ZRISCgRuYW1lGAEgASgJUgRuYW1lEhIKBHR5cGUYAiABKAlSBHR5cGUSRwoMYWRtaW5fc3RhdHVzGAMgASgOMiQuaWV0Zi5JbnRlcmZhY2VTdGF0ZS5BZG1pblN0YXR1c1R5cGVSC2FkbWluU3RhdHVzEkQKC29wZXJfc3RhdHVzGAQgASgOMiMuaWV0Zi5JbnRlcmZhY2VTdGF0ZS5PcGVyU3RhdHVzVHlwZVIKb3BlclN0YXR1cxIfCgtsYXN0X2NoYW5nZRgFIAEoCVIKbGFzdENoYW5nZRIZCghpZl9pbmRleBgGIAEoBVIHaWZJbmRleBIhCgxwaHlzX2FkZHJlc3MYByABKAlSC3BoeXNBZGRyZXNzEiYKD2hpZ2hlcl9sYXllcl9pZhgIIAMoCVINaGlnaGVy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aWNlSWQSGAoHY3JlYXRlZBgCIAEoCVIHY3JlYXRlZBIkCg5sYXN0X3N5bmNfdGltZRgDIAEoCVIMbGFzdFN5bmNUaW1lEiIKDW1pYl9kYXRhX3N5bmMYBCABKA1SC21pYkRhdGFTeW5jEhgKB3ZlcnNpb24YBSABKA1SB3ZlcnNpb24SPQoHY2xhc3NlcxgGIAMoCzISLm9tY2kuTWliQ2xhc3NEYXRhQg/i9s0dCgoIY2xhc3NfaWRSB2NsYXNzZXMSPgoQbWFuYWdlZF9lbnRpdGllcxgHIAMoCzITLm9tY2kuTWFuYWdlZEVudGl0eVIPbWFuYWdlZEVudGl0aWVzEjYKDW1lc3NhZ2VfdHlwZXMYCCADKAsyES5vbWNpLk1lc3NhZ2VUeXBlUgxtZXNzYWdlVHlwZXMiLgoRT3Blbk9tY2lFdmVudFR5cGUiGQoFVHlwZXMSEAoMc3RhdGVfY2hhbmdlEAAiVgoNT3Blbk9tY2lFdmVudBIxCgR0eXBlGAEgASgOMh0ub21jaS5PcGVuT21jaUV2ZW50VHlwZS5UeXBlc1IEdHlwZRISCgRkYXRhGAIgASgJUgRkYXRhQkgKGG9yZy5vcGVuY29yZC52b2x0aGEub21jaVosZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y0L2dvL29tY2lKhRYKBhIEDwBPAQreBAoBDBIDDwASGtMECiBDb3B5cmlnaHQgMjAxOCAtIHByZXNlbnQgdGhlIG9yaWdpbmFsIGF1dGhvciBvciBhdXRob3JzLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJl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ASgJUghtb2RpZmllZBJFCgphdHRyaWJ1dGVzGAQgAygLMhgub21jaS5BbGFybUF0dHJpYnV0ZURhdGFCC+L2zR0GCgRuYW1lUgphdHRyaWJ1dGVzIn0KDkFsYXJtQ2xhc3NEYXRhEiAKCGNsYXNzX2lkGAEgASgNQgXo9s0dAVIHY2xhc3NJZBJJCglpbnN0YW5jZXMYAiADKAsyFy5vbWNpLkFsYXJtSW5zdGFuY2VEYXRhQhLi9s0dDQoLaW5zdGFuY2VfaWRSCWluc3RhbmNlcyJRChJBbGFybU1hbmFnZWRFbnRpdHkSIAoIY2xhc3NfaWQYASABKA1CBej2zR0BUgdjbGFzc0lkEhkKBG5hbWUYAiABKAlCBej2zR0BUgRuYW1lIjwKEEFsYXJtTWVzc2FnZVR5cGUSKAoMbWVzc2FnZV90eXBlGAEgASgNQgXo9s0dAVILbWVzc2FnZVR5cGUiggMKD0FsYXJtRGV2aWNlRGF0YRIiCglkZXZpY2VfaWQYASABKAlCBej2zR0BUghkZXZpY2VJZBIYCgdjcmVhdGVkGAIgASgJUgdjcmVhdGVkEi4KE2xhc3RfYWxhcm1fc2VxdWVuY2UYAyABKA1SEWxhc3RBbGFybVNlcXVlbmNlEiQKDmxhc3Rfc3luY190aW1lGAQgASgJUgxsYXN0U3luY1RpbWUSGAoHdmVyc2lvbhgFIAEoDVIHdmVyc2lvbhI/CgdjbGFzc2VzGAYgAygLMhQub21jaS5BbGFybUNsYXNzRGF0YUIP4vbNHQoKCGNsYXNzX2lkUgdjbGFzc2VzEkMKEG1hbmFnZWRfZW50aXRpZXMYByADKAsyGC5vbWNpLkFsYXJtTWFuYWdlZEVudGl0eVIPbWFuYWdlZEVudGl0aWVzEjsKDW1lc3NhZ2VfdHlwZXMYCCADKAsyFi5vbWNpLkFsYXJtTWVzc2FnZVR5cGVSDG1lc3NhZ2VUeXBlcyI/ChZBbGFybU9wZW5PbWNpRXZlbnRUeXBlIiUKEU9wZW5PbWNpRXZlbnRUeXBlEhAKDHN0YXRlX2NoYW5nZRAAImwKEkFsYXJtT3Blbk9tY2lFdmVudBJCCgR0eXBlGAEgASgOMi4ub21jaS5BbGFybU9wZW5PbWNpRXZlbnRUeXBlLk9wZW5PbWNpRXZlbnRUeXBlUgR0eXBlEhIKBGRhdGEYAiABKAlSBGRhdGFCSAoYb3JnLm9wZW5jb3JkLnZvbHRoYS5vbWNpWixnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjQvZ28vb21jaUqFFgoGEgQPAFABCt4ECgEMEgMPABIa0wQKIENvcHlyaWdodCAyMDE4IC0gcHJlc2VudCB0aGUgb3JpZ2luYWwgYXV0aG9yIG9yIGF1dGhvcnMuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCggKAQgSAxEAQwoJCgIICxIDEQBDCggKAQgSAxIAMQoJCgIIARIDEgAxCggKAQISAxQADQoJCgIDABIDFgAiCgoKAgQAEgQZABwBCgoKAwQAARIDGQgaCgsKBAQAAgASAxoEOQoNCgUEAAIABBIEGgQZHAoMCgUEAAIABRIDGgQKCgwKBQQAAgABEgMaCw8KDAoFBAACAAMSAxoZGgoMCgUEAAIACBIDGhs4ChAKCQQAAgAI7d7ZAxID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SAgUCg4KBwQGBAACAAISA0gXGAoKCgIEBxIETABQAQoKCgMEBwESA0wIGgoLCgQEBwIAEgNNBDYKDQoFBAcCAAQSBE0ETBwKDAoFBAcCAAYSA00ELAoMCgUEBwIAARIDTS0xCgwKBQQHAgADEgNNNDUKLgoEBAcCARIDTwQUIiEgYXNzb2NpYXRlZCBkYXRhLCBpbiBqc29uIGZvcm1hdAoKDQoFBAcCAQQSBE8ETTYKDAoFBAcCAQUSA08ECgoMCgUEBwIBARIDTwsPCgwKBQQHAgEDEgNPEhNiBnByb3RvMwr42AEKGnZvbHRoYV9wcm90b3Mvdm9sdGhhLnByb3RvEgZ2b2x0aGEaHGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8aG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxoYdm9sdGhhX3Byb3Rvcy9tZXRhLnByb3RvGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxoadm9sdGhhX3Byb3Rvcy9oZWFsdGgucHJvdG8aInZvbHRoYV9wcm90b3MvbG9naWNhbF9kZXZpY2UucHJvdG8aGnZvbHRoYV9wcm90b3MvZGV2aWNlLnByb3RvGht2b2x0aGFfcHJvdG9zL2FkYXB0ZXIucHJvdG8aH3ZvbHRoYV9wcm90b3Mvb3BlbmZsb3dfMTMucHJvdG8aH3ZvbHRoYV9wcm90b3Mvb21jaV9taWJfZGIucHJvdG8aIXZvbHRoYV9wcm90b3Mvb21jaV9hbGFybV9kYi5wcm90bxoedm9sdGhhX3Byb3Rvcy9leHRfY29uZmlnLnByb3RvIqQBCgtEZXZpY2VHcm91cBIVCgJpZBgBIAEoCUIF6PbNHQFSAmlkEkkKD2xvZ2ljYWxfZGV2aWNlcxgCIAMoCzIVLnZvbHRoYS5Mb2dpY2FsRGV2aWNlQgni9s0dBAoCaWRSDmxvZ2ljYWxEZXZpY2VzEjMKB2RldmljZXMYAyADKAsyDi52b2x0aGEuRGV2aWNlQgni9s0dBAoCaWRSB2RldmljZXMiOQoMRGV2aWNlR3JvdXBzEikKBWl0ZW1zGAEgAygLMhMudm9sdGhhLkRldmljZUdyb3VwUgVpdGVtcyKeAQoSRXZlbnRGaWx0ZXJSdWxlS2V5IocBChNFdmVudEZpbHRlclJ1bGVUeXBlEg4KCmZpbHRlcl9hbGwQABIMCghjYXRlZ29yeRABEhAKDHN1Yl9jYXRlZ29yeRACEhIKDmtwaV9ldmVudF90eXBlEAMSFQoRY29uZmlnX2V2ZW50X3R5cGUQBBIVChFkZXZpY2VfZXZlbnRfdHlwZRAFImkKD0V2ZW50RmlsdGVyUnVsZRJACgNrZXkYASABKA4yLi52b2x0aGEuRXZlbnRGaWx0ZXJSdWxlS2V5LkV2ZW50RmlsdGVyUnVsZVR5cGVSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWUipwEKC0V2ZW50RmlsdGVyEhUKAmlkGAEgASgJQgXo9s0dAVICaWQSFgoGZW5hYmxlGAIgASgIUgZlbmFibGUSGwoJZGV2aWNlX2lkGAMgASgJUghkZXZpY2VJZBIdCgpldmVudF90eXBlGAQgASgJUglldmVudFR5cGUSLQoFcnVsZXMYBSADKAsyFy52b2x0aGEuRXZlbnRGaWx0ZXJSdWxlUgVydWxlcyI9CgxFdmVudEZpbHRlcnMSLQoHZmlsdGVycxgBIAMoCzITLnZvbHRoYS5FdmVudEZpbHRlclIHZmlsdGVycyJrCgxDb3JlSW5zdGFuY2USJgoLaW5zdGFuY2VfaWQYASABKAlCBej2zR0BUgppbnN0YW5jZUlkEjMKBmhlYWx0aBgCIAEoCzIULnZvbHRoYS5IZWFsdGhTdGF0dXNCBeL2zR0AUgZoZWFsdGgiOwoNQ29yZUluc3RhbmNlcxIqCgVpdGVtcxgBIAMoCzIULnZvbHRoYS5Db3JlSW5zdGFuY2VSBWl0ZW1zIjUKD09tY2lUZXN0UmVxdWVzdBIOCgJpZBgBIAEoCVICaWQSEgoEdXVpZBgCIAEoCVIEdXVpZCJ/CgxUZXN0UmVzcG9uc2USPwoGcmVzdWx0GAEgASgOMicudm9sdGhhLlRlc3RSZXNwb25zZS5UZXN0UmVzcG9uc2VSZXN1bHRSBnJlc3VsdCIuChJUZXN0UmVzcG9uc2VSZXN1bHQSCwoHU1VDQ0VTUxAAEgsKB0ZBSUxVUkUQASJdCghWYWx1ZVNldBIOCgJpZBgBIAEoCVICaWQSOAoMYWxhcm1fY29uZmlnGAIgASgLMhMuY29uZmlnLkFsYXJtQ29uZmlnSABSC2FsYXJtQ29uZmlnQgcKBXZhbHVlItkECgZWb2x0aGESHwoHdmVyc2lvbhgBIAEoCUIF6PbNHQFSB3ZlcnNpb24SNgoIYWRhcHRlcnMYAiADKAsyDy52b2x0aGEuQWRhcHRlckIJ4vbNHQQKAmlkUghhZGFwdGVycxJJCg9sb2dpY2FsX2RldmljZXMYAyADKAsyFS52b2x0aGEuTG9naWNhbERldmljZUIJ4vbNHQQKAmlkUg5sb2dpY2FsRGV2aWNlcxIzCgdkZXZpY2VzGAQgAygLMg4udm9sdGhhLkRldmljZUIJ4vbNHQQKAmlkUgdkZXZpY2VzEkAKDGRldmljZV90eXBlcxgFIAMoCzISLnZvbHRoYS5EZXZpY2VUeXBlQgni9s0dBAoCaWRSC2RldmljZVR5cGVzEkMKDWRldmljZV9ncm91cHMYBiADKAsyEy52b2x0aGEuRGV2aWNlR3JvdXBCCeL2zR0ECgJpZFIMZGV2aWNlR3JvdXBzEkMKDWV2ZW50X2ZpbHRlcnMYByADKAsyEy52b2x0aGEuRXZlbnRGaWx0ZXJCCeL2zR0ECgJpZFIMZXZlbnRGaWx0ZXJzElEKEW9tY2lfbWliX2RhdGFiYXNlGBwgAygLMhMub21jaS5NaWJEZXZpY2VEYXRhQhDi9s0dCwoJZGV2aWNlX2lkUg9vbWNpTWliRGF0YWJhc2USVwoTb21jaV9hbGFybV9kYXRhYmFzZRgdIAMoCzIVLm9tY2kuQWxhcm1EZXZpY2VEYXRhQhDi9s0dCwoJZGV2aWNlX2lkUhFvbWNpQWxhcm1EYXRhYmFzZSKlAQoQU2VsZlRlc3RSZXNwb25zZRI/CgZyZXN1bHQYASABKA4yJy52b2x0aGEuU2VsZlRlc3RSZXNwb25zZS5TZWxmVGVzdFJlc3VsdFIGcmVzdWx0IlAKDlNlbGZUZXN0UmVzdWx0EgsKB1NVQ0NFU1MQABILCgdGQUlMVVJFEAESEQoNTk9UX1NVUFBPUlRFRBACEhEKDVVOS05PV05fRVJST1IQAyJPChFPZkFnZW50U3Vic2NyaWJlchIdCgpvZmFnZW50X2lkGAEgASgJUglvZmFnZW50SWQSGwoJdm9sdGhhX2lkGAIgASgJUgh2b2x0aGFJZCI7CgpNZW1iZXJzaGlwEh0KCmdyb3VwX25hbWUYASABKAlSCWdyb3VwTmFtZRIOCgJpZBgCIAEoCVICaWQiwgEKGkRldmljZUltYWdlRG93bmxvYWRSZXF1ZXN0EicKCWRldmljZV9pZBgBIAMoCzIKLmNvbW1vbi5JRFIIZGV2aWNlSWQSIwoFaW1hZ2UYAiABKAsyDS52b2x0aGEuSW1hZ2VSBWltYWdlEiwKEWFjdGl2YXRlT25TdWNjZXNzGAMgASgIUhFhY3RpdmF0ZU9uU3VjY2VzcxIoCg9jb21taXRPblN1Y2Nlc3MYBCABKAhSD2NvbW1pdE9uU3VjY2VzcyKBAQoSRGV2aWNlSW1hZ2VSZXF1ZXN0EicKCWRldmljZV9pZBgBIAMoCzIKLmNvbW1vbi5JRFIIZGV2aWNlSWQSGAoHdmVyc2lvbhgCIAEoCVIHdmVyc2lvbhIoCg9jb21taXRPblN1Y2Nlc3MYAyABKAhSD2NvbW1pdE9uU3VjY2VzcyJfChNEZXZpY2VJbWFnZVJlc3BvbnNlEkgKE2RldmljZV9pbWFnZV9zdGF0ZXMYASADKAsyGC52b2x0aGEuRGV2aWNlSW1hZ2VTdGF0ZVIRZGV2aWNlSW1hZ2VTdGF0ZXMiRQoMRmxvd01ldGFkYXRhEjUKBm1ldGVycxgBIAMoCzIdLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9jb25maWdSBm1ldGVyczKvNgoNVm9sdGhhU2VydmljZRJXCg1HZXRNZW1iZXJzaGlwEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhIudm9sdGhhLk1lbWJlcnNoaXAiGoLT5JMCFBISL2FwaS92MS9tZW1iZXJzaGlwEl0KEFVwZGF0ZU1lbWJlcnNoaXASEi52b2x0aGEuTWVtYmVyc2hpcBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIdgtPkkwIXIhIvYXBpL3YxL21lbWJlcnNoaXA6ASoSRAoJR2V0Vm9sdGhhEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Gg4udm9sdGhhLlZvbHRoYSIPgtPkkwIJEgcvYXBpL3YxEl0KEUxpc3RDb3JlSW5zdGFuY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhUudm9sdGhhLkNvcmVJbnN0YW5jZXMiGYLT5JMCExIRL2FwaS92MS9pbnN0YW5jZXMSUwoPR2V0Q29yZUluc3RhbmNlEgouY29tbW9uLklEGhQudm9sdGhhLkNvcmVJbnN0YW5jZSIegtPkkwIYEhYvYXBpL3YxL2luc3RhbmNlcy97aWR9ElIKDExpc3RBZGFwdGVycxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoQLnZvbHRoYS5BZGFwdGVycyIYgtPkkwISEhAvYXBpL3YxL2FkYXB0ZXJzEmUKEkxpc3RMb2dpY2FsRGV2aWNlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoWLnZvbHRoYS5Mb2dpY2FsRGV2aWNlcyIfgtPkkwIZEhcvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcxJbChBHZXRMb2dpY2FsRGV2aWNlEgouY29tbW9uLklEGhUudm9sdGhhLkxvZ2ljYWxEZXZpY2UiJILT5JMCHhIcL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfRJmChZMaXN0TG9naWNhbERldmljZVBvcnRzEgouY29tbW9uLklEGhQudm9sdGhhLkxvZ2ljYWxQb3J0cyIqgtPkkwIkEiIvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzEngKFEdldExvZ2ljYWxEZXZpY2VQb3J0EhUudm9sdGhhLkxvZ2ljYWxQb3J0SWQaEy52b2x0aGEuTG9naWNhbFBvcnQiNILT5JMCLhIsL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9wb3J0cy97cG9ydF9pZH0ShQEKF0VuYWJsZUxvZ2ljYWxEZXZpY2VQb3J0EhUudm9sdGhhLkxvZ2ljYWxQb3J0SWQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiO4LT5JMCNSIzL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9wb3J0cy97cG9ydF9pZH0vZW5hYmxlEocBChhEaXNhYmxlTG9naWNhbERldmljZVBvcnQSFS52b2x0aGEuTG9naWNhbFBvcnRJZBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI8gtPkkwI2IjQvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzL3twb3J0X2lkfS9kaXNhYmxlEmQKFkxpc3RMb2dpY2FsRGV2aWNlRmxvd3MSCi5jb21tb24uSUQaEi5vcGVuZmxvd18xMy5GbG93cyIqgtPkkwIkEiIvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dzEoMBChxVcGRhdGVMb2dpY2FsRGV2aWNlRmxvd1RhYmxlEhwub3BlbmZsb3dfMTMuRmxvd1RhYmxlVXBkYXRlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ii2C0+STAiciIi9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd3M6ASoShAEKHVVwZGF0ZUxvZ2ljYWxEZXZpY2VNZXRlclRhYmxlEhsub3BlbmZsb3dfMTMuTWV0ZXJNb2RVcGRhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiLoLT5JMCKCIjL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9tZXRlcnM6ASoSZwoXTGlzdExvZ2ljYWxEZXZpY2VNZXRlcnMSCi5jb21tb24uSUQaEy5vcGVuZmxvd18xMy5NZXRlcnMiK4LT5JMCJRIjL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9tZXRlcnMSdAobTGlzdExvZ2ljYWxEZXZpY2VGbG93R3JvdXBzEgouY29tbW9uLklEGhcub3BlbmZsb3dfMTMuRmxvd0dyb3VwcyIwgtPkkwIqEigvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzEpMBCiFVcGRhdGVMb2dpY2FsRGV2aWNlRmxvd0dyb3VwVGFibGUSIS5vcGVuZmxvd18xMy5GbG93R3JvdXBUYWJsZVVwZGF0ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIzgtPkkwItIigvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzOgEqEk8KC0xpc3REZXZpY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Gg8udm9sdGhhLkRldmljZXMiF4LT5JMCERIPL2FwaS92MS9kZXZpY2VzEk8KDUxpc3REZXZpY2VJZHMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaCy5jb21tb24uSURzIhmC0+STAhMSES9hcGkvdjEvZGV2aWNlaWRzElUKEFJlY29uY2lsZURldmljZXMSCy5jb21tb24uSURzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhyC0+STAhYiES9hcGkvdjEvZGV2aWNlaWRzOgEqEkUKCUdldERldmljZRIKLmNvbW1vbi5JRBoOLnZvbHRoYS5EZXZpY2UiHILT5JMCFhIUL2FwaS92MS9kZXZpY2VzL3tpZH0SSgoMQ3JlYXRlRGV2aWNlEg4udm9sdGhhLkRldmljZRoOLnZvbHRoYS5EZXZpY2UiGoLT5JMCFCIPL2FwaS92MS9kZXZpY2VzOgEqElcKDEVuYWJsZURldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIjgtPkkwIdIhsvYXBpL3YxL2RldmljZXMve2lkfS9lbmFibGUSWQoNRGlzYWJsZURldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIkgtPkkwIeIhwvYXBpL3YxL2RldmljZXMve2lkfS9kaXNhYmxlElcKDFJlYm9vdERldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIjgtPkkwIdIhsvYXBpL3YxL2RldmljZXMve2lkfS9yZWJvb3QSVwoMRGVsZXRlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0qGy9hcGkvdjEvZGV2aWNlcy97aWR9L2RlbGV0ZRJiChFGb3JjZURlbGV0ZURldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIpgtPkkwIjKiEvYXBpL3YxL2RldmljZXMve2lkfS9mb3JjZV9kZWxldGUSdQoNRG93bmxvYWRJbWFnZRIVLnZvbHRoYS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiNoLT5JMCMCIrL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfToBKhKCAQoWR2V0SW1hZ2VEb3dubG9hZFN0YXR1cxIVLnZvbHRoYS5JbWFnZURvd25sb2FkGhUudm9sdGhhLkltYWdlRG93bmxvYWQiOoLT5JMCNBIyL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfS9zdGF0dXMSdQoQR2V0SW1hZ2VEb3dubG9hZBIVLnZvbHRoYS5JbWFnZURvd25sb2FkGhUudm9sdGhhLkltYWdlRG93bmxvYWQiM4LT5JMCLRIrL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfRJmChJMaXN0SW1hZ2VEb3dubG9hZHMSCi5jb21tb24uSUQaFi52b2x0aGEuSW1hZ2VEb3dubG9hZHMiLILT5JMCJhIkL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzEngKE0NhbmNlbEltYWdlRG93bmxvYWQSFS52b2x0aGEuSW1hZ2VEb3dubG9hZBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIjOC0+STAi0qKy9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0SiAEKE0FjdGl2YXRlSW1hZ2VVcGRhdGUSFS52b2x0aGEuSW1hZ2VEb3dubG9hZBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIkOC0+STAj0iOC9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0vaW1hZ2VfdXBkYXRlOgEqEoYBChFSZXZlcnRJbWFnZVVwZGF0ZRIVLnZvbHRoYS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiQ4LT5JMCPSI4L2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfS9pbWFnZV9yZXZlcnQ6ASoSiAEKFURvd25sb2FkSW1hZ2VUb0RldmljZRIiLnZvbHRoYS5EZXZpY2VJbWFnZURvd25sb2FkUmVxdWVzdBobLnZvbHRoYS5EZXZpY2VJbWFnZVJlc3BvbnNlIi6C0+STAigSJi9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvZG93bmxvYWRfaW1hZ2VzEncKDkdldEltYWdlU3RhdHVzEhoudm9sdGhhLkRldmljZUltYWdlUmVxdWVzdBobLnZvbHRoYS5EZXZpY2VJbWFnZVJlc3BvbnNlIiyC0+STAiYSJC9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvaW1hZ2VzX3N0YXR1cxKJAQoZQWJvcnRJbWFnZVVwZ3JhZGVUb0RldmljZRIaLnZvbHRoYS5EZXZpY2VJbWFnZVJlcXVlc3QaGy52b2x0aGEuRGV2aWNlSW1hZ2VSZXNwb25zZSIzgtPkkwItEisvYXBpL3YxL2RldmljZXMvaW1hZ2VzL2Fib3J0X3VwZ3JhZGVfaW1hZ2VzElYKDEdldE9udUltYWdlcxIKLmNvbW1vbi5JRBoRLnZvbHRoYS5PbnVJbWFnZXMiJ4LT5JMCIRIfL2FwaS92MS9kZXZpY2VzL3tpZH0vb251X2ltYWdlcxJ7Cg1BY3RpdmF0ZUltYWdlEhoudm9sdGhhLkRldmljZUltYWdlUmVxdWVzdBobLnZvbHRoYS5EZXZpY2VJbWFnZVJlc3BvbnNlIjGC0+STAisiJi9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvYWN0aXZhdGVfaW1hZ2VzOgEqEncKC0NvbW1pdEltYWdlEhoudm9sdGhhLkRldmljZUltYWdlUmVxdWVzdBobLnZvbHRoYS5EZXZpY2VJbWFnZVJlc3BvbnNlIi+C0+STAikiJC9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvY29tbWl0X2ltYWdlczoBKhJQCg9MaXN0RGV2aWNlUG9ydHMSCi5jb21tb24uSUQaDS52b2x0aGEuUG9ydHMiIoLT5JMCHBIaL2FwaS92MS9kZXZpY2VzL3tpZH0vcG9ydHMSXQoTTGlzdERldmljZVBtQ29uZmlncxIKLmNvbW1vbi5JRBoRLnZvbHRoYS5QbUNvbmZpZ3MiJ4LT5JMCIRIfL2FwaS92MS9kZXZpY2VzL3tpZH0vcG1fY29uZmlncxJuChVVcGRhdGVEZXZpY2VQbUNvbmZpZ3MSES52b2x0aGEuUG1Db25maWdzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiqC0+STAiQiHy9hcGkvdjEvZGV2aWNlcy97aWR9L3BtX2NvbmZpZ3M6ASoSVQoPTGlzdERldmljZUZsb3dzEgouY29tbW9uLklEGhIub3BlbmZsb3dfMTMuRmxvd3MiIoLT5JMCHBIaL2FwaS92MS9kZXZpY2VzL3tpZH0vZmxvd3MSZQoUTGlzdERldmljZUZsb3dHcm91cHMSCi5jb21tb24uSUQaFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzIiiC0+STAiISIC9hcGkvdjEvZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzElwKD0xpc3REZXZpY2VUeXBlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoTLnZvbHRoYS5EZXZpY2VUeXBlcyIcgtPkkwIWEhQvYXBpL3YxL2RldmljZV90eXBlcxJSCg1HZXREZXZpY2VUeXBlEgouY29tbW9uLklEGhIudm9sdGhhLkRldmljZVR5cGUiIYLT5JMCGxIZL2FwaS92MS9kZXZpY2VfdHlwZXMve2lkfRJfChBMaXN0RGV2aWNlR3JvdXBzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhQudm9sdGhhLkRldmljZUdyb3VwcyIdgtPkkwIXEhUvYXBpL3YxL2RldmljZV9ncm91cHMSRgoQU3RyZWFtUGFja2V0c091dBIWLm9wZW5mbG93XzEzLlBhY2tldE91dBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIAKAESRQoQUmVjZWl2ZVBhY2tldHNJbhIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoVLm9wZW5mbG93XzEzLlBhY2tldEluIgAwARJLChNSZWNlaXZlQ2hhbmdlRXZlbnRzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ghgub3BlbmZsb3dfMTMuQ2hhbmdlRXZlbnQiADABElUKDkdldERldmljZUdyb3VwEgouY29tbW9uLklEGhMudm9sdGhhLkRldmljZUdyb3VwIiKC0+STAhwSGi9hcGkvdjEvZGV2aWNlX2dyb3Vwcy97aWR9El8KEUNyZWF0ZUV2ZW50RmlsdGVyEhMudm9sdGhhLkV2ZW50RmlsdGVyGhMudm9sdGhhLkV2ZW50RmlsdGVyIiCC0+STAhoiFS9hcGkvdjEvZXZlbnRfZmlsdGVyczoBKhJWCg5HZXRFdmVudEZpbHRlchIKLmNvbW1vbi5JRBoULnZvbHRoYS5FdmVudEZpbHRlcnMiIoLT5JMCHBIaL2FwaS92MS9ldmVudF9maWx0ZXJzL3tpZH0SZAoRVXBkYXRlRXZlbnRGaWx0ZXISEy52b2x0aGEuRXZlbnRGaWx0ZXIaEy52b2x0aGEuRXZlbnRGaWx0ZXIiJYLT5JMCHxoaL2FwaS92MS9ldmVudF9maWx0ZXJzL3tpZH06ASoSZAoRRGVsZXRlRXZlbnRGaWx0ZXISEy52b2x0aGEuRXZlbnRGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiIoLT5JMCHCoaL2FwaS92MS9ldmVudF9maWx0ZXJzL3tpZH0SXwoQTGlzdEV2ZW50RmlsdGVycxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoULnZvbHRoYS5FdmVudEZpbHRlcnMiHYLT5JMCFxIVL2FwaS92MS9ldmVudF9maWx0ZXJzEkwKCUdldEltYWdlcxIKLmNvbW1vbi5JRBoOLnZvbHRoYS5JbWFnZXMiI4LT5JMCHRIbL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VzElgKCFNlbGZUZXN0EgouY29tbW9uLklEGhgudm9sdGhhLlNlbGZUZXN0UmVzcG9uc2UiJoLT5JMCICIeL2FwaS92MS9kZXZpY2VzL3tpZH0vc2VsZl90ZXN0ElYKEEdldE1pYkRldmljZURhdGESCi5jb21tb24uSUQaEy5vbWNpLk1pYkRldmljZURhdGEiIYLT5JMCGxIZL2FwaS92MS9vcGVub21jaS97aWR9L21pYhJcChJHZXRBbGFybURldmljZURhdGESCi5jb21tb24uSUQaFS5vbWNpLkFsYXJtRGV2aWNlRGF0YSIjgtPkkwIdEhsvYXBpL3YxL29wZW5vbWNpL3tpZH0vYWxhcm0ScwoNU2ltdWxhdGVBbGFybRIcLnZvbHRoYS5TaW11bGF0ZUFsYXJtUmVxdWVzdBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIi2C0+STAiciIi9hcGkvdjEvZGV2aWNlcy97aWR9L3NpbXVsYXRlX2xhcm06ASoSQwoJU3Vic2NyaWJlEhkudm9sdGhhLk9mQWdlbnRTdWJzY3JpYmVyGhkudm9sdGhhLk9mQWdlbnRTdWJzY3JpYmVyIgASTQoKRW5hYmxlUG9ydBIMLnZvbHRoYS5Qb3J0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhmC0+STAhMiDi92MS9FbmFibGVQb3J0OgEqEk8KC0Rpc2FibGVQb3J0Egwudm9sdGhhLlBvcnQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiGoLT5JMCFCIPL3YxL0Rpc2FibGVQb3J0OgEq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RAESBNgFCBsKDQoFBgACRAISBNgFHCsKDQoFBgACRAMSBNgFNUEKDwoFBgACRAQSBtkFCNwFCgoTCgkGAAJEBLDKvCISBtkFCNwFClACUANQBFAFUAZQB1AIYgZwcm90bzMKm0AKI3ZvbHRoYV9wcm90b3MvaW50ZXJfY29udGFpbmVyLnByb3RvEgZ2b2x0aGEaGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhp2b2x0aGFfcHJvdG9zL3ZvbHRoYS5wcm90bxoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxoidm9sdGhhX3Byb3Rvcy9sb2dpY2FsX2RldmljZS5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90byIbCgdTdHJUeXBlEhAKA3ZhbBgBIAEoCVIDdmFsIhsKB0ludFR5cGUSEAoDdmFsGAEgASgDUgN2YWwiHAoIQm9vbFR5cGUSEAoDdmFsGAEgASgIUgN2YWwiIgoGUGFja2V0EhgKB3BheWxvYWQYASABKAxSB3BheWxvYWQiXAoJRXJyb3JDb2RlIk8KBWNvZGVzEhcKE1VOU1VQUE9SVEVEX1JFUVVFU1QQABIWChJJTlZBTElEX1BBUkFNRVRFUlMQARIVChFERUFETElORV9FWENFRURFRBACIkwKBUVycm9yEisKBGNvZGUYASABKA4yFy52b2x0aGEuRXJyb3JDb2RlLmNvZGVzUgRjb2RlEhYKBnJlYXNvbhgCIAEoCVIGcmVhc29uItIBCgZIZWFkZXISDgoCaWQYASABKAlSAmlkEicKBHR5cGUYAiABKA4yEy52b2x0aGEuTWVzc2FnZVR5cGVSBHR5cGUSHQoKZnJvbV90b3BpYxgDIAEoCVIJZnJvbVRvcGljEhkKCHRvX3RvcGljGAQgASgJUgd0b1RvcGljEhsKCWtleV90b3BpYxgFIAEoCVIIa2V5VG9waWMSOAoJdGltZXN0YW1wGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIJdGltZXN0YW1wIkgKCEFyZ3VtZW50EhAKA2tleRgBIAEoCVIDa2V5EioKBXZhbHVlGAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIFdmFsdWUiaQoVSW50ZXJDb250YWluZXJNZXNzYWdlEiYKBmhlYWRlchgBIAEoCzIOLnZvbHRoYS5IZWFkZXJSBmhlYWRlchIoCgRib2R5GAIgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIEYm9keSKmAQoZSW50ZXJDb250YWluZXJSZXF1ZXN0Qm9keRIQCgNycGMYAiABKAlSA3JwYxIkCgRhcmdzGAMgAygLMhAudm9sdGhhLkFyZ3VtZW50UgRhcmdzEisKEXJlc3BvbnNlX3JlcXVpcmVkGAQgASgIUhByZXNwb25zZVJlcXVpcmVkEiQKDnJlcGx5X3RvX3RvcGljGAUgASgJUgxyZXBseVRvVG9waWMiZAoaSW50ZXJDb250YWluZXJSZXNwb25zZUJvZHkSGAoHc3VjY2VzcxgBIAEoCFIHc3VjY2VzcxIsCgZyZXN1bHQYAyABKAsyFC5nb29nbGUucHJvdG9idWYuQW55UgZyZXN1bHQiiAEKEFN3aXRjaENhcGFiaWxpdHkSKQoEZGVzYxgBIAEoCzIVLm9wZW5mbG93XzEzLm9mcF9kZXNjUgRkZXNjEkkKD3N3aXRjaF9mZWF0dXJlcxgCIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9zd2l0Y2hfZmVhdHVyZXNSDnN3aXRjaEZlYXR1cmVzIn4KEERldmljZURpc2NvdmVyZWQSDgoCaWQYASABKAlSAmlkEhsKCXBhcmVudF9pZBgCIAEoCVIIcGFyZW50SWQSHwoLZGV2aWNlX3R5cGUYAyABKAlSCmRldmljZVR5cGUSHAoJcHVibGlzaGVyGAQgASgJUglwdWJsaXNoZXIinQIKF0ludGVyQWRhcHRlck1lc3NhZ2VUeXBlIoECCgVUeXBlcxIQCgxGTE9XX1JFUVVFU1QQABIRCg1GTE9XX1JFU1BPTlNFEAESEAoMT01DSV9SRVFVRVNUEAISEQoNT01DSV9SRVNQT05TRRADEhMKD01FVFJJQ1NfUkVRVUVTVBAEEhQKEE1FVFJJQ1NfUkVTUE9OU0UQBRITCg9PTlVfSU5EX1JFUVVFU1QQBhIUChBPTlVfSU5EX1JFU1BPTlNFEAcSIQodVEVDSF9QUk9GSUxFX0RPV05MT0FEX1JFUVVFU1QQCBIbChdERUxFVEVfR0VNX1BPUlRfUkVRVUVTVBAJEhgKFERFTEVURV9UQ09OVF9SRVFVRVNUEAoinQIKEkludGVyQWRhcHRlckhlYWRlchIOCgJpZBgBIAEoCVICaWQSOQoEdHlwZRgCIAEoDjIlLnZvbHRoYS5JbnRlckFkYXB0ZXJNZXNzYWdlVHlwZS5UeXBlc1IEdHlwZRIdCgpmcm9tX3RvcGljGAMgASgJUglmcm9tVG9waWMSGQoIdG9fdG9waWMYBCABKAlSB3RvVG9waWMSIAoMdG9fZGV2aWNlX2lkGAUgASgJUgp0b0RldmljZUlkEiYKD3Byb3h5X2RldmljZV9pZBgGIAEoCVINcHJveHlEZXZpY2VJZBI4Cgl0aW1lc3RhbXAYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wUgl0aW1lc3RhbXAiuQEKF0ludGVyQWRhcHRlck9tY2lNZXNzYWdlEhgKB21lc3NhZ2UYASABKAxSB21lc3NhZ2USQgoOY29ubmVjdF9zdGF0dXMYAiABKA4yGy5jb21tb24uQ29ubmVjdFN0YXR1cy5UeXBlc1INY29ubmVjdFN0YXR1cxJACg1wcm94eV9hZGRyZXNzGAMgASgLMhsudm9sdGhhLkRldmljZS5Qcm94eUFkZHJlc3NSDHByb3h5QWRkcmVzcyJTCiZJbnRlckFkYXB0ZXJUZWNoUHJvZmlsZURvd25sb2FkTWVzc2FnZRIVCgZ1bmlfaWQYASABKA1SBXVuaUlkEhIKBHBhdGgYAiABKAlSBHBhdGgicgogSW50ZXJBZGFwdGVyRGVsZXRlR2VtUG9ydE1lc3NhZ2USFQoGdW5pX2lkGAEgASgNUgV1bmlJZBIXCgd0cF9wYXRoGAIgASgJUgZ0cFBhdGgSHgoLZ2VtX3BvcnRfaWQYAyABKA1SCWdlbVBvcnRJZCJrCh5JbnRlckFkYXB0ZXJEZWxldGVUY29udE1lc3NhZ2USFQoGdW5pX2lkGAEgASgNUgV1bmlJZBIXCgd0cF9wYXRoGAIgASgJUgZ0cFBhdGgSGQoIYWxsb2NfaWQYAyABKA1SB2FsbG9jSWQioAEKGEludGVyQWRhcHRlclJlc3BvbnNlQm9keRIWCgZzdGF0dXMYASABKAhSBnN0YXR1cxIqCgRib2R5GAIgASgL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BQQTAgIBEgSRASAkCg0KBQQTAgIDEgSRAScoCgwKAgQUEgaVAQCYAQEKCwoDBBQBEgSVAQgbCgwKBAQUAgASBJYBBCIKDwoFBBQCAAQSBpYBBJUBHQoNCgUEFAIABhIElgEEFgoNCgUEFAIAARIElgEXHQoNCgUEFAIAAxIElgEgIQoMCgQEFAIBEgSXAQQhCg8KBQQUAgEEEgaXAQSWASIKDQoFBBQCAQYSBJcBBBcKDQoFBBQCAQESBJcBGBwKDQoFBBQCAQMSBJcBHyBQAFABUARiBnByb3RvMwrXPwogdm9sdGhhX3Byb3Rvcy90ZWNoX3Byb2ZpbGUucHJvdG8SDHRlY2hfcHJvZmlsZRocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90byKAAgoPU2NoZWR1bGVyQ29uZmlnEjUKCWRpcmVjdGlvbhgBIAEoDjIXLnRlY2hfcHJvZmlsZS5EaXJlY3Rpb25SCWRpcmVjdGlvbhI/Cg1hZGRpdGlvbmFsX2J3GAIgASgOMhoudGVjaF9wcm9maWxlLkFkZGl0aW9uYWxCV1IMYWRkaXRpb25hbEJ3EhoKCHByaW9yaXR5GAMgASgHUghwcmlvcml0eRIWCgZ3ZWlnaHQYBCABKAdSBndlaWdodBJBCgxzY2hlZF9wb2xpY3kYBSABKA4yHi50ZWNoX3Byb2ZpbGUuU2NoZWR1bGluZ1BvbGljeVILc2NoZWRQb2xpY3kiuAEKElRyYWZmaWNTaGFwaW5nSW5mbxIQCgNjaXIYASABKAdSA2NpchIQCgNjYnMYAiABKAdSA2NicxIQCgNwaXIYAyABKAdSA3BpchIQCgNwYnMYBCABKAdSA3BicxIQCgNnaXIYBSABKAdSA2dpchJICgphZGRfYndfaW5kGAYgASgOMioudGVjaF9wcm9maWxlLkluZmVycmVkQWRkaXRpb25CV0luZGljYXRpb25SCGFkZEJ3SW5kIp0CChBUcmFmZmljU2NoZWR1bGVyEjUKCWRpcmVjdGlvbhgBIAEoDjIXLnRlY2hfcHJvZmlsZS5EaXJlY3Rpb25SCWRpcmVjdGlvbhIZCghhbGxvY19pZBgCIAEoB1IHYWxsb2NJZBI7CglzY2hlZHVsZXIYAyABKAsyHS50ZWNoX3Byb2ZpbGUuU2NoZWR1bGVyQ29uZmlnUglzY2hlZHVsZXISUgoUdHJhZmZpY19zaGFwaW5nX2luZm8YBCABKAsyIC50ZWNoX3Byb2ZpbGUuVHJhZmZpY1NoYXBpbmdJbmZvUhJ0cmFmZmljU2hhcGluZ0luZm8SJgoPdGVjaF9wcm9maWxlX2lkGAUgASgHUg10ZWNoUHJvZmlsZUlkIroBChFUcmFmZmljU2NoZWR1bGVycxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIVCgZ1bmlfaWQYBCABKAdSBXVuaUlkEhcKB3BvcnRfbm8YBSABKAdSBnBvcnRObxJFCg50cmFmZmljX3NjaGVkcxgDIAMoCzIeLnRlY2hfcHJvZmlsZS5UcmFmZmljU2NoZWR1bGVyUg10cmFmZmljU2NoZWRzIjYKFVRhaWxEcm9wRGlzY2FyZENvbmZpZxIdCgpxdWV1ZV9zaXplGAEgASgHUglxdWV1ZVNpemUihQEKEFJlZERpc2NhcmRDb25maWcSIwoNbWluX3RocmVzaG9sZBgBIAEoB1IMbWluVGhyZXNob2xkEiMKDW1heF90aHJlc2hvbGQYAiABKAdSDG1heFRocmVzaG9sZBInCg9tYXhfcHJvYmFiaWxpdHkYAyABKAdSDm1heFByb2JhYmlsaXR5IrMBChFXUmVkRGlzY2FyZENvbmZpZxI0CgVncmVlbhgBIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUgVncmVlbhI2CgZ5ZWxsb3cYAiABKAsyHi50ZWNoX3Byb2ZpbGUuUmVkRGlzY2FyZENvbmZpZ1IGeWVsbG93EjAKA3JlZBgDIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUgNyZWQi6AIKDURpc2NhcmRDb25maWcSQgoOZGlzY2FyZF9wb2xpY3kYASABKA4yGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZFBvbGljeVINZGlzY2FyZFBvbGljeRJeChh0YWlsX2Ryb3BfZGlzY2FyZF9jb25maWcYAiABKAsyIy50ZWNoX3Byb2ZpbGUuVGFpbERyb3BEaXNjYXJkQ29uZmlnSABSFXRhaWxEcm9wRGlzY2FyZENvbmZpZxJOChJyZWRfZGlzY2FyZF9jb25maWcYAyABKAsyHi50ZWNoX3Byb2ZpbGUuUmVkRGlzY2FyZENvbmZpZ0gAUhByZWREaXNjYXJkQ29uZmlnElEKE3dyZWRfZGlzY2FyZF9jb25maWcYBCABKAsyHy50ZWNoX3Byb2ZpbGUuV1JlZERpc2NhcmRDb25maWdIAFIRd3JlZERpc2NhcmRDb25maWdCEAoOZGlzY2FyZF9jb25maWcipQMKDFRyYWZmaWNRdWV1ZRI1CglkaXJlY3Rpb24YASABKA4yFy50ZWNoX3Byb2ZpbGUuRGlyZWN0aW9uUglkaXJlY3Rpb24SHQoKZ2VtcG9ydF9pZBgCIAEoB1IJZ2VtcG9ydElkEhkKCHBiaXRfbWFwGAMgASgJUgdwYml0TWFwEiUKDmFlc19lbmNyeXB0aW9uGAQgASgIUg1hZXNFbmNyeXB0aW9uEkEKDHNjaGVkX3BvbGljeRgFIAEoDjIeLnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UgtzY2hlZFBvbGljeRIaCghwcmlvcml0eRgGIAEoB1IIcHJpb3JpdHkSFgoGd2VpZ2h0GAcgASgHUgZ3ZWlnaHQSQgoOZGlzY2FyZF9wb2xpY3kYCCABKA4yGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZFBvbGljeVINZGlzY2FyZFBvbGljeRJCCg5kaXNjYXJkX2NvbmZpZxgJIAEoCzIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkQ29uZmlnUg1kaXNjYXJkQ29uZmlnItoBCg1UcmFmZmljUXVldWVzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhUKBnVuaV9pZBgEIAEoB1IFdW5pSWQSFwoHcG9ydF9ubxgFIAEoB1IGcG9ydE5vEkEKDnRyYWZmaWNfcXVldWVzGAYgAygLMhoudGVjaF9wcm9maWxlLlRyYWZmaWNRdWV1ZVINdHJhZmZpY1F1ZXVlcxImCg90ZWNoX3Byb2ZpbGVfaWQYByABKAdSDXRlY2hQcm9maWxlSWQqPAoJRGlyZWN0aW9uEgwKCFVQU1RSRUFNEAASDgoKRE9XTlNUUkVBTRABEhEKDUJJRElSRUNUSU9OQUwQAio7ChBTY2hlZHVsaW5nUG9saWN5EgcKA1dSUhAAEhIKDlN0cmljdFByaW9yaXR5EAESCgoGSHlicmlkEAIqbgoMQWRkaXRpb25hbEJXEhUKEUFkZGl0aW9uYWxCV19Ob25lEAASEwoPQWRkaXRpb25hbEJXX05BEAESGwoXQWRkaXRpb25hbEJXX0Jlc3RFZmZvcnQQAhIVChFBZGRpdGlvbmFsQldfQXV0bxADKj8KDURpc2NhcmRQb2xpY3kSDAoIVGFpbERyb3AQABINCglXVGFpbERyb3AQARIHCgNSZWQQAhIICgRXUmVkEAMqnAEKHEluZmVycmVkQWRkaXRpb25CV0luZGljYXRpb24SJQohSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9Ob25lEAASKAokSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9Bc3N1cmVkEAESKwonSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9CZXN0RWZmb3J0EAJCWAogb3JnLm9wZW5jb3JkLnZvbHRoYS50ZWNoX3Byb2ZpbGVaNGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NC9nby90ZWNoX3Byb2ZpbGVK2CgKBxIFDgCDAQEK0QQKAQwSAw4AEjLGBCBDb3B5cmlnaHQgKGMpIDIwMTggT3BlbiBOZXR3b3JraW5nIEZvdW5kYXRpb24KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FS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DAoFBAkCAgUSA38ECwoMCgUECQICARIDfwwSCgwKBQQJAgIDEgN/FRYKDAoEBAkCAxIEgAEEGAoOCgUECQIDBBIFgAEEfxcKDQoFBAkCAwUSBIABBAsKDQoFBAkCAwESBIABDBMKDQoFBAkCAwMSBIABFhcKDAoEBAkCBBIEgQEELQoNCgUECQIEBBIEgQEEDAoNCgUECQIEBhIEgQENGQoNCgUECQIEARIEgQEaKAoNCgUECQIEAxIEgQErLAoMCgQECQIFEgSCAQQgCg8KBQQJAgUEEgaCAQSBAS0KDQoFBAkCBQUSBIIBBAsKDQoFBAkCBQESBIIBDBsKDQoFBAkCBQMSBIIBHh9iBnByb3RvMwqw+gIKG3ZvbHRoYV9wcm90b3Mvb3Blbm9sdC5wcm90bxIHb3Blbm9sdBocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxogdm9sdGhhX3Byb3Rvcy90ZWNoX3Byb2ZpbGUucHJvdG8aGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGh52b2x0aGFfcHJvdG9zL2V4dF9jb25maWcucHJvdG8izAQKCkluZGljYXRpb24SMQoHb2x0X2luZBgBIAEoCzIWLm9wZW5vbHQuT2x0SW5kaWNhdGlvbkgAUgZvbHRJbmQSNAoIaW50Zl9pbmQYAiABKAsyFy5vcGVub2x0LkludGZJbmRpY2F0aW9uSABSB2ludGZJbmQSQQoNaW50Zl9vcGVyX2luZBgDIAEoCzIbLm9wZW5vbHQuSW50Zk9wZXJJbmRpY2F0aW9uSABSC2ludGZPcGVySW5kEj4KDG9udV9kaXNjX2luZBgEIAEoCzIaLm9wZW5vbHQuT251RGlzY0luZGljYXRpb25IAFIKb251RGlzY0luZBIxCgdvbnVfaW5kGAUgASgLMhYub3Blbm9sdC5PbnVJbmRpY2F0aW9uSABSBm9udUluZBI0CghvbWNpX2luZBgGIAEoCzIXLm9wZW5vbHQuT21jaUluZGljYXRpb25IAFIHb21jaUluZBI0Cgdwa3RfaW5kGAcgASgLMhkub3Blbm9sdC5QYWNrZXRJbmRpY2F0aW9uSABSBnBrdEluZBI4Cgpwb3J0X3N0YXRzGAggASgLMhcub3Blbm9sdC5Qb3J0U3RhdGlzdGljc0gAUglwb3J0U3RhdHMSOAoKZmxvd19zdGF0cxgJIAEoCzIXLm9wZW5vbHQuRmxvd1N0YXRpc3RpY3NIAFIJZmxvd1N0YXRzEjcKCWFsYXJtX2luZBgKIAEoCzIYLm9wZW5vbHQuQWxhcm1JbmRpY2F0aW9uSABSCGFsYXJtSW5kQgYKBGRhdGEi6w0KD0FsYXJtSW5kaWNhdGlvbhIxCgdsb3NfaW5kGAEgASgLMhYub3Blbm9sdC5Mb3NJbmRpY2F0aW9uSABSBmxvc0luZBJECg5keWluZ19nYXNwX2luZBgCIAEoCzIcLm9wZW5vbHQuRHlpbmdHYXNwSW5kaWNhdGlvbkgAUgxkeWluZ0dhc3BJbmQSQQoNb251X2FsYXJtX2luZBgDIAEoCzIbLm9wZW5vbHQuT251QWxhcm1JbmRpY2F0aW9uSABSC29udUFsYXJtSW5kElcKFG9udV9zdGFydHVwX2ZhaWxfaW5kGAQgASgLMiQub3Blbm9sdC5PbnVTdGFydHVwRmFpbHVyZUluZGljYXRpb25IAFIRb251U3RhcnR1cEZhaWxJbmQSWgoWb251X3NpZ25hbF9kZWdyYWRlX2luZBgFIAEoCzIjLm9wZW5vbHQuT251U2lnbmFsRGVncmFkZUluZGljYXRpb25IAFITb251U2lnbmFsRGVncmFkZUluZBJbChdvbnVfZHJpZnRfb2Zfd2luZG93X2luZBgGIAEoCzIjLm9wZW5vbHQuT251RHJpZnRPZldpbmRvd0luZGljYXRpb25IAFITb251RHJpZnRPZldpbmRvd0luZBJUChFvbnVfbG9zc19vbWNpX2luZBgHIAEoCzInLm9wZW5vbHQuT251TG9zc09mT21jaUNoYW5uZWxJbmRpY2F0aW9uSABSDm9udUxvc3NPbWNpSW5kElcKFG9udV9zaWduYWxzX2ZhaWxfaW5kGAggASgLMiQub3Blbm9sdC5PbnVTaWduYWxzRmFpbHVyZUluZGljYXRpb25IAFIRb251U2lnbmFsc0ZhaWxJbmQSTwoMb251X3Rpd2lfaW5kGAkgASgLMisub3Blbm9sdC5PbnVUcmFuc21pc3Npb25JbnRlcmZlcmVuY2VXYXJuaW5nSABSCm9udVRpd2lJbmQSYAoXb251X2FjdGl2YXRpb25fZmFpbF9pbmQYCiABKAsyJy5vcGVub2x0Lk9udUFjdGl2YXRpb25GYWlsdXJlSW5kaWNhdGlvbkgAUhRvbnVBY3RpdmF0aW9uRmFpbEluZBJgChhvbnVfcHJvY2Vzc2luZ19lcnJvcl9pbmQYCyABKAsyJS5vcGVub2x0Lk9udVByb2Nlc3NpbmdFcnJvckluZGljYXRpb25IAFIVb251UHJvY2Vzc2luZ0Vycm9ySW5kEmUKGW9udV9sb3NzX29mX3N5bmNfZmFpbF9pbmQYDCABKAsyKi5vcGVub2x0Lk9udUxvc3NPZktleVN5bmNGYWlsdXJlSW5kaWNhdGlvbkgAUhRvbnVMb3NzT2ZTeW5jRmFpbEluZBJVChVvbnVfaXR1X3Bvbl9zdGF0c19pbmQYDSABKAsyIS5vcGVub2x0Lk9udUl0dVBvblN0YXRzSW5kaWNhdGlvbkgAUhFvbnVJdHVQb25TdGF0c0luZBJsChxvbnVfZGVhY3RpdmF0aW9uX2ZhaWx1cmVfaW5kGA4gASgLMikub3Blbm9sdC5PbnVEZWFjdGl2YXRpb25GYWlsdXJlSW5kaWNhdGlvbkgAUhlvbnVEZWFjdGl2YXRpb25GYWlsdXJlSW5kElcKFW9udV9yZW1vdGVfZGVmZWN0X2luZBgPIAEoCzIiLm9wZW5vbHQuT251UmVtb3RlRGVmZWN0SW5kaWNhdGlvbkgAUhJvbnVSZW1vdGVEZWZlY3RJbmQScwocb251X2xvc3NfZ2VtX2RlbGluZWF0aW9uX2luZBgQIAEoCzIxLm9wZW5vbHQuT251TG9zc09mR0VNQ2hhbm5lbERlbGluZWF0aW9uSW5kaWNhdGlvbkgAUhhvbnVMb3NzR2VtRGVsaW5lYXRpb25JbmQSdgogb251X3BoeXNpY2FsX2VxdWlwbWVudF9lcnJvcl9pbmQYESABKAsyLC5vcGVub2x0Lk9udVBoeXNpY2FsRXF1aXBtZW50RXJyb3JJbmRpY2F0aW9uSABSHG9udVBoeXNpY2FsRXF1aXBtZW50RXJyb3JJbmQSWwoTb251X2xvc3Nfb2ZfYWNrX2luZBgSIAEoCzIrLm9wZW5vbHQuT251TG9zc09mQWNrbm93bGVkZ2VtZW50SW5kaWNhdGlvbkgAUg9vbnVMb3NzT2ZBY2tJbmQSbwobb251X2RpZmZfcmVhY2hfZXhjZWVkZWRfaW5kGBMgASgLMi8ub3Blbm9sdC5PbnVEaWZmZXJlbnRpYWxSZWFjaEV4Y2VlZGVkSW5kaWNhdGlvbkgAUhdvbnVEaWZmUmVhY2hFeGNlZWRlZEluZEIGCgRkYXRhIi4KDU9sdEluZGljYXRpb24SHQoKb3Blcl9zdGF0ZRgBIAEoCVIJb3BlclN0YXRlIkgKDkludGZJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIdCgpvcGVyX3N0YXRlGAIgASgJUglvcGVyU3RhdGUiaAoRT251RGlzY0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEjoKDXNlcmlhbF9udW1iZXIYAiABKAsyFS5vcGVub2x0LlNlcmlhbE51bWJlclIMc2VyaWFsTnVtYmVyIpMECg1PbnVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh0KCm9wZXJfc3RhdGUYAyABKAlSCW9wZXJTdGF0ZRIfCgthZG1pbl9zdGF0ZRgFIAEoCVIKYWRtaW5TdGF0ZRI6Cg1zZXJpYWxfbnVtYmVyGAQgASgLMhUub3Blbm9sdC5TZXJpYWxOdW1iZXJSDHNlcmlhbE51bWJlchJMCgtmYWlsX3JlYXNvbhgGIAEoDjIrLm9wZW5vbHQuT251SW5kaWNhdGlvbi5BY3RpdmF0aW9uRmFpbFJlYXNvblIKZmFpbFJlYXNvbiKHAgoUQWN0aXZhdGlvbkZhaWxSZWFzb24SIwofT05VX0FDVElWQVRJT05fRkFJTF9SRUFTT05fTk9ORRAAEiYKIk9OVV9BQ1RJVkFUSU9OX0ZBSUxfUkVBU09OX1JBTkdJTkcQARI2CjJPTlVfQUNUSVZBVElPTl9GQUlMX1JFQVNPTl9QQVNTV09SRF9BVVRIRU5USUNBVElPThACEiIKHk9OVV9BQ1RJVkFUSU9OX0ZBSUxfUkVBU09OX0xPUxADEiEKHU9OVV9BQ1RJVkFUSU9OX0ZBSUxfT05VX0FMQVJNEAQSIwofT05VX0FDVElWQVRJT05fRkFJTF9TV0lUQ0hfT1ZFUhAFImAKEkludGZPcGVySW5kaWNhdGlvbhISCgR0eXBlGAEgASgJUgR0eXBlEhcKB2ludGZfaWQYAiABKAdSBmludGZJZBIdCgpvcGVyX3N0YXRlGAMgASgJUglvcGVyU3RhdGUiUgoOT21jaUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSEAoDcGt0GAMgASgMUgNwa3Qi8QEKEFBhY2tldEluZGljYXRpb24SGwoJaW50Zl90eXBlGAUgASgJUghpbnRmVHlwZRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAggASgHUgVvbnVJZBIVCgZ1bmlfaWQYCSABKAdSBXVuaUlkEh0KCmdlbXBvcnRfaWQYAiABKAdSCWdlbXBvcnRJZBIXCgdmbG93X2lkGAMgASgHUgZmbG93SWQSFwoHcG9ydF9ubxgGIAEoB1IGcG9ydE5vEhYKBmNvb2tpZRgHIAEoBlIGY29va2llEhAKA3BrdBgEIAEoDFIDcGt0IiQKCUludGVyZmFjZRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQiPAoJSGVhcnRiZWF0Ei8KE2hlYXJ0YmVhdF9zaWduYXR1cmUYASABKAdSEmhlYXJ0YmVhdFNpZ25hdHVyZSKsAQoDT251EhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEjoKDXNlcmlhbF9udW1iZXIYAyABKAsyFS5vcGVub2x0LlNlcmlhbE51bWJlclIMc2VyaWFsTnVtYmVyEhAKA3BpchgEIAEoB1IDcGlyEicKD29tY2NfZW5jcnlwdGlvbhgFIAEoCFIOb21jY0VuY3J5cHRpb24isQEKEk9udUxvZ2ljYWxEaXN0YW5jZRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBI5Chlsb2dpY2FsX29udV9kaXN0YW5jZV96ZXJvGAMgASgHUhZsb2dpY2FsT251RGlzdGFuY2VaZXJvEjAKFGxvZ2ljYWxfb251X2Rpc3RhbmNlGAQgASgHUhJsb2dpY2FsT251RGlzdGFuY2UiSwoHT21jaU1zZxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIQCgNwa3QYAyABKAxSA3BrdCKFAQoJT251UGFja2V0EhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhcKB3BvcnRfbm8YBCABKAdSBnBvcnRObxIdCgpnZW1wb3J0X2lkGAUgASgHUglnZW1wb3J0SWQSEAoDcGt0GAMgASgMUgNwa3QiOQoMVXBsaW5rUGFja2V0EhcKB2ludGZfaWQYASABKAdSBmludGZJZBIQCgNwa3QYAiABKAxSA3BrdCLFCQoKRGV2aWNlSW5mbxIWCgZ2ZW5kb3IYASABKAlSBnZlbmRvchIUCgVtb2RlbBgCIAEoCVIFbW9kZWwSKQoQaGFyZHdhcmVfdmVyc2lvbhgDIAEoCVIPaGFyZHdhcmVWZXJzaW9uEikKEGZpcm13YXJlX3ZlcnNpb24YBCABKAlSD2Zpcm13YXJlVmVyc2lvbhIbCglkZXZpY2VfaWQYECABKAlSCGRldmljZUlkEjAKFGRldmljZV9zZXJpYWxfbnVtYmVyGBEgASgJUhJkZXZpY2VTZXJpYWxOdW1iZXISMQoUcHJldmlvdXNseV9jb25uZWN0ZWQYEyABKAhSE3ByZXZpb3VzbHlDb25uZWN0ZWQSGwoJcG9uX3BvcnRzGAwgASgHUghwb25Qb3J0cxIeCgp0ZWNobm9sb2d5GAUgASgJUgp0ZWNobm9sb2d5EiAKDG9udV9pZF9zdGFydBgGIAEoB1IKb251SWRTdGFydBIcCgpvbnVfaWRfZW5kGAcgASgHUghvbnVJZEVuZBIkCg5hbGxvY19pZF9zdGFydBgIIAEoB1IMYWxsb2NJZFN0YXJ0EiAKDGFsbG9jX2lkX2VuZBgJIAEoB1IKYWxsb2NJZEVuZBIoChBnZW1wb3J0X2lkX3N0YXJ0GAogASgHUg5nZW1wb3J0SWRTdGFydBIkCg5nZW1wb3J0X2lkX2VuZBgLIAEoB1IMZ2VtcG9ydElkRW5kEiIKDWZsb3dfaWRfc3RhcnQYDSABKAdSC2Zsb3dJZFN0YXJ0Eh4KC2Zsb3dfaWRfZW5kGA4gASgHUglmbG93SWRFbmQSQAoGcmFuZ2VzGA8gAygLMigub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzUgZyYW5nZXMalQQKFERldmljZVJlc291cmNlUmFuZ2VzEhkKCGludGZfaWRzGAEgAygHUgdpbnRmSWRzEh4KCnRlY2hub2xvZ3kYAiABKAlSCnRlY2hub2xvZ3kSQwoFcG9vbHMYAyADKAsyLS5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXMuUG9vbFIFcG9vbHMa/AIKBFBvb2wSSgoEdHlwZRgBIAEoDjI2Lm9wZW5vbHQuRGV2aWNlSW5mby5EZXZpY2VSZXNvdXJjZVJhbmdlcy5Qb29sLlBvb2xUeXBlUgR0eXBlElMKB3NoYXJpbmcYAiABKA4yOS5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXMuUG9vbC5TaGFyaW5nVHlwZVIHc2hhcmluZxIUCgVzdGFydBgDIAEoB1IFc3RhcnQSEAoDZW5kGAQgASgHUgNlbmQiQQoIUG9vbFR5cGUSCgoGT05VX0lEEAASDAoIQUxMT0NfSUQQARIOCgpHRU1QT1JUX0lEEAISCwoHRkxPV19JRBADImgKC1NoYXJpbmdUeXBlEhYKEkRFRElDQVRFRF9QRVJfSU5URhAAEh8KG1NIQVJFRF9CWV9BTExfSU5URl9BTExfVEVDSBABEiAKHFNIQVJFRF9CWV9BTExfSU5URl9TQU1FX1RFQ0gQAiKEAwoKQ2xhc3NpZmllchIVCgZvX3RwaWQYASABKAdSBW9UcGlkEhMKBW9fdmlkGAIgASgHUgRvVmlkEhUKBmlfdHBpZBgDIAEoB1IFaVRwaWQSEwoFaV92aWQYBCABKAdSBGlWaWQSFwoHb19wYml0cxgFIAEoB1IGb1BiaXRzEhcKB2lfcGJpdHMYBiABKAdSBmlQYml0cxIZCghldGhfdHlwZRgHIAEoB1IHZXRoVHlwZRIXCgdkc3RfbWFjGAggASgMUgZkc3RNYWMSFwoHc3JjX21hYxgJIAEoDFIGc3JjTWFjEhkKCGlwX3Byb3RvGAogASgHUgdpcFByb3RvEhUKBmRzdF9pcBgLIAEoB1IFZHN0SXASFQoGc3JjX2lwGAwgASgHUgVzcmNJcBIZCghzcmNfcG9ydBgNIAEoB1IHc3JjUG9ydBIZCghkc3RfcG9ydBgOIAEoB1IHZHN0UG9ydBIgCgxwa3RfdGFnX3R5cGUYDyABKAlSCnBrdFRhZ1R5cGUihQMKCUFjdGlvbkNtZBIiCg1hZGRfb3V0ZXJfdGFnGAEgASgIUgthZGRPdXRlclRhZxIoChByZW1vdmVfb3V0ZXJfdGFnGAIgASgIUg5yZW1vdmVPdXRlclRhZxIgCgx0cmFwX3RvX2hvc3QYAyABKAhSCnRyYXBUb0hvc3QSLAoScmVtYXJrX291dGVyX3BiaXRzGAQgASgIUhByZW1hcmtPdXRlclBiaXRzEiwKEnJlbWFya19pbm5lcl9wYml0cxgFIAEoCFIQcmVtYXJrSW5uZXJQYml0cxIiCg1hZGRfaW5uZXJfdGFnGAYgASgIUgthZGRJbm5lclRhZxIoChByZW1vdmVfaW5uZXJfdGFnGAcgASgIUg5yZW1vdmVJbm5lclRhZxIuChN0cmFuc2xhdGVfaW5uZXJfdGFnGAggASgIUhF0cmFuc2xhdGVJbm5lclRhZxIuChN0cmFuc2xhdGVfb3V0ZXJfdGFnGAkgASgIUhF0cmFuc2xhdGVPdXRlclRhZyK4AQoGQWN0aW9uEiQKA2NtZBgBIAEoCzISLm9wZW5vbHQuQWN0aW9uQ21kUgNjbWQSEwoFb192aWQYAiABKAdSBG9WaWQSFwoHb19wYml0cxgDIAEoB1IGb1BiaXRzEhUKBm9fdHBpZBgEIAEoB1IFb1RwaWQSEwoFaV92aWQYBSABKAdSBGlWaWQSFwoHaV9wYml0cxgGIAEoB1IGaVBiaXRzEhUKBmlfdHBpZBgHIAEoB1IFaVRwaWQixwYKBEZsb3cSJAoOYWNjZXNzX2ludGZfaWQYASABKA9SDGFjY2Vzc0ludGZJZBIVCgZvbnVfaWQYAiABKA9SBW9udUlkEhUKBnVuaV9pZBgLIAEoD1IFdW5pSWQSFwoHZmxvd19pZBgDIAEoBlIGZmxvd0lkEioKEXN5bW1ldHJpY19mbG93X2lkGBIgASgGUg9zeW1tZXRyaWNGbG93SWQSGwoJZmxvd190eXBlGAQgASgJUghmbG93VHlwZRIZCghhbGxvY19pZBgKIAEoD1IHYWxsb2NJZBImCg9uZXR3b3JrX2ludGZfaWQYBSABKA9SDW5ldHdvcmtJbnRmSWQSHQoKZ2VtcG9ydF9pZBgGIAEoD1IJZ2VtcG9ydElkEjMKCmNsYXNzaWZpZXIYByABKAsyEy5vcGVub2x0LkNsYXNzaWZpZXJSCmNsYXNzaWZpZXISJwoGYWN0aW9uGAggASgLMg8ub3Blbm9sdC5BY3Rpb25SBmFjdGlvbhIaCghwcmlvcml0eRgJIAEoD1IIcHJpb3JpdHkSFgoGY29va2llGAwgASgGUgZjb29raWUSFwoHcG9ydF9ubxgNIAEoB1IGcG9ydE5vEhkKCGdyb3VwX2lkGA4gASgHUgdncm91cElkEiYKD3RlY2hfcHJvZmlsZV9pZBgPIAEoB1INdGVjaFByb2ZpbGVJZBIlCg5yZXBsaWNhdGVfZmxvdxgQIAEoCFINcmVwbGljYXRlRmxvdxJICg9wYml0X3RvX2dlbXBvcnQYESADKAsyIC5vcGVub2x0LkZsb3cuUGJpdFRvR2VtcG9ydEVudHJ5Ug1wYml0VG9HZW1wb3J0EkUKDmdlbXBvcnRfdG9fYWVzGBMgAygLMh8ub3Blbm9sdC5GbG93LkdlbXBvcnRUb0Flc0VudHJ5UgxnZW1wb3J0VG9BZXMaQAoSUGJpdFRvR2VtcG9ydEVudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgHUgV2YWx1ZToCOAEaPwoRR2VtcG9ydFRvQWVzRW50cnkSEAoDa2V5GAEgASgHUgNrZXkSFAoFdmFsdWUYAiABKAhSBXZhbHVlOgI4ASJUCgxTZXJpYWxOdW1iZXISGwoJdmVuZG9yX2lkGAEgASgMUgh2ZW5kb3JJZBInCg92ZW5kb3Jfc3BlY2lmaWMYAiABKAxSDnZlbmRvclNwZWNpZmljIv4LCg5Qb3J0U3RhdGlzdGljcxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSGQoIcnhfYnl0ZXMYAiABKAZSB3J4Qnl0ZXMSHQoKcnhfcGFja2V0cxgDIAEoBlIJcnhQYWNrZXRzEigKEHJ4X3VjYXN0X3BhY2tldHMYBCABKAZSDnJ4VWNhc3RQYWNrZXRzEigKEHJ4X21jYXN0X3BhY2tldHMYBSABKAZSDnJ4TWNhc3RQYWNrZXRzEigKEHJ4X2JjYXN0X3BhY2tldHMYBiABKAZSDnJ4QmNhc3RQYWNrZXRzEigKEHJ4X2Vycm9yX3BhY2tldHMYByABKAZSDnJ4RXJyb3JQYWNrZXRzEhsKCXJ4X2ZyYW1lcxgRIAEoBlIIcnhGcmFtZXMSIAoMcnhfZnJhbWVzXzY0GBIgASgGUgpyeEZyYW1lczY0EicKEHJ4X2ZyYW1lc182NV8xMjcYEyABKAZSDXJ4RnJhbWVzNjUxMjcSKQoRcnhfZnJhbWVzXzEyOF8yNTUYFCABKAZSDnJ4RnJhbWVzMTI4MjU1EikKEXJ4X2ZyYW1lc18yNTZfNTExGBUgASgGUg5yeEZyYW1lczI1NjUxMRIrChJyeF9mcmFtZXNfNTEyXzEwMjMYFiABKAZSD3J4RnJhbWVzNTEyMTAyMxItChNyeF9mcmFtZXNfMTAyNF8xNTE4GBcgASgGUhByeEZyYW1lczEwMjQxNTE4Ei0KE3J4X2ZyYW1lc18xNTE5XzIwNDcYGCABKAZSEHJ4RnJhbWVzMTUxOTIwNDcSLQoTcnhfZnJhbWVzXzIwNDhfNDA5NRgZIAEoBlIQcnhGcmFtZXMyMDQ4NDA5NRItChNyeF9mcmFtZXNfNDA5Nl85MjE2GBogASgGUhByeEZyYW1lczQwOTY5MjE2Ei8KFHJ4X2ZyYW1lc185MjE3XzE2MzgzGBsgASgGUhFyeEZyYW1lczkyMTcxNjM4MxIiCg1yeF9jcmNfZXJyb3JzGA4gASgGUgtyeENyY0Vycm9ycxIZCgh0eF9ieXRlcxgIIAEoBlIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGAkgASgGUgl0eFBhY2tldHMSKAoQdHhfdWNhc3RfcGFja2V0cxgKIAEoBlIOdHhVY2FzdFBhY2tldHMSKAoQdHhfbWNhc3RfcGFja2V0cxgLIAEoBlIOdHhNY2FzdFBhY2tldHMSKAoQdHhfYmNhc3RfcGFja2V0cxgMIAEoBlIOdHhCY2FzdFBhY2tldHMSKAoQdHhfZXJyb3JfcGFja2V0cxgNIAEoBlIOdHhFcnJvclBhY2tldHMSGwoJdHhfZnJhbWVzGBwgASgGUgh0eEZyYW1lcxIgCgx0eF9mcmFtZXNfNjQYHSABKAZSCnR4RnJhbWVzNjQSJwoQdHhfZnJhbWVzXzY1XzEyNxgeIAEoBlINdHhGcmFtZXM2NTEyNxIpChF0eF9mcmFtZXNfMTI4XzI1NRgfIAEoBlIOdHhGcmFtZXMxMjgyNTUSKQoRdHhfZnJhbWVzXzI1Nl81MTEYICABKAZSDnR4RnJhbWVzMjU2NTExEisKEnR4X2ZyYW1lc181MTJfMTAyMxghIAEoBlIPdHhGcmFtZXM1MTIxMDIzEi0KE3R4X2ZyYW1lc18xMDI0XzE1MTgYIiABKAZSEHR4RnJhbWVzMTAyNDE1MTgSLQoTdHhfZnJhbWVzXzE1MTlfMjA0NxgjIAEoBlIQdHhGcmFtZXMxNTE5MjA0NxItChN0eF9mcmFtZXNfMjA0OF80MDk1GCQgASgGUhB0eEZyYW1lczIwNDg0MDk1Ei0KE3R4X2ZyYW1lc180MDk2XzkyMTYYJSABKAZSEHR4RnJhbWVzNDA5NjkyMTYSLwoUdHhfZnJhbWVzXzkyMTdfMTYzODMYJiABKAZSEXR4RnJhbWVzOTIxNzE2MzgzEh0KCmJpcF9lcnJvcnMYDyABKAZSCWJpcEVycm9ycxIcCgl0aW1lc3RhbXAYECABKAdSCXRpbWVzdGFtcCLmBwoNT251U3RhdGlzdGljcxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIlCg5wb3NpdGl2ZV9kcmlmdBgDIAEoBlINcG9zaXRpdmVEcmlmdBIlCg5uZWdhdGl2ZV9kcmlmdBgEIAEoBlINbmVnYXRpdmVEcmlmdBI4ChhkZWxpbWl0ZXJfbWlzc19kZXRlY3Rpb24YBSABKAZSFmRlbGltaXRlck1pc3NEZXRlY3Rpb24SHQoKYmlwX2Vycm9ycxgGIAEoBlIJYmlwRXJyb3JzEhsKCWJpcF91bml0cxgHIAEoBlIIYmlwVW5pdHMSMgoVZmVjX2NvcnJlY3RlZF9zeW1ib2xzGAggASgGUhNmZWNDb3JyZWN0ZWRTeW1ib2xzEjYKF2ZlY19jb2Rld29yZHNfY29ycmVjdGVkGAkgASgGUhVmZWNDb2Rld29yZHNDb3JyZWN0ZWQSPgobZmVjX2NvZGV3b3Jkc191bmNvcnJlY3RhYmxlGAogASgGUhlmZWNDb2Rld29yZHNVbmNvcnJlY3RhYmxlEiMKDWZlY19jb2Rld29yZHMYCyABKAZSDGZlY0NvZGV3b3JkcxIuChNmZWNfY29ycmVjdGVkX3VuaXRzGAwgASgGUhFmZWNDb3JyZWN0ZWRVbml0cxImCg94Z2VtX2tleV9lcnJvcnMYDSABKAZSDXhnZW1LZXlFcnJvcnMSGwoJeGdlbV9sb3NzGA4gASgGUgh4Z2VtTG9zcxImCg9yeF9wbG9hbXNfZXJyb3IYDyABKAZSDXJ4UGxvYW1zRXJyb3ISKwoScnhfcGxvYW1zX25vbl9pZGxlGBAgASgGUg9yeFBsb2Ftc05vbklkbGUSFwoHcnhfb21jaRgRIAEoBlIGcnhPbWNpEjgKGXJ4X29tY2lfcGFja2V0c19jcmNfZXJyb3IYEiABKAZSFXJ4T21jaVBhY2tldHNDcmNFcnJvchIZCghyeF9ieXRlcxgTIAEoBlIHcnhCeXRlcxIdCgpyeF9wYWNrZXRzGBQgASgGUglyeFBhY2tldHMSGQoIdHhfYnl0ZXMYFSABKAZSB3R4Qnl0ZXMSHQoKdHhfcGFja2V0cxgWIAEoBlIJdHhQYWNrZXRzEiEKDGJlcl9yZXBvcnRlZBgXIAEoBlILYmVyUmVwb3J0ZWQSHwoLbGNkZ19lcnJvcnMYGCABKAZSCmxjZGdFcnJvcnMSHQoKcmRpX2Vycm9ycxgZIAEoBlIJcmRpRXJyb3JzEhwKCXRpbWVzdGFtcBgaIAEoB1IJdGltZXN0YW1wIt0BChFHZW1Qb3J0U3RhdGlzdGljcxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSHQoKZ2VtcG9ydF9pZBgCIAEoB1IJZ2VtcG9ydElkEh0KCnJ4X3BhY2tldHMYAyABKAZSCXJ4UGFja2V0cxIZCghyeF9ieXRlcxgEIAEoBlIHcnhCeXRlcxIdCgp0eF9wYWNrZXRzGAUgASgGUgl0eFBhY2tldHMSGQoIdHhfYnl0ZXMYBiABKAZSB3R4Qnl0ZXMSHAoJdGltZXN0YW1wGBogASgHUgl0aW1lc3RhbXAiuwEKDkZsb3dTdGF0aXN0aWNzEhcKB2Zsb3dfaWQYASABKAdSBmZsb3dJZBIZCghyeF9ieXRlcxgCIAEoBlIHcnhCeXRlcxIdCgpyeF9wYWNrZXRzGAMgASgGUglyeFBhY2tldHMSGQoIdHhfYnl0ZXMYCCABKAZSB3R4Qnl0ZXMSHQoKdHhfcGFja2V0cxgJIAEoBlIJdHhQYWNrZXRzEhwKCXRpbWVzdGFtcBgQIAEoB1IJdGltZXN0YW1wIkAKDUxvc0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhYKBnN0YXR1cxgCIAEoCVIGc3RhdHVzIl0KE0R5aW5nR2FzcEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMiowIKEk9udUFsYXJtSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIdCgpsb3Nfc3RhdHVzGAMgASgJUglsb3NTdGF0dXMSHQoKbG9iX3N0YXR1cxgEIAEoCVIJbG9iU3RhdHVzEigKEGxvcGNfbWlzc19zdGF0dXMYBSABKAlSDmxvcGNNaXNzU3RhdHVzEjEKFWxvcGNfbWljX2Vycm9yX3N0YXR1cxgGIAEoCVISbG9wY01pY0Vycm9yU3RhdHVzEh8KC2xvZmlfc3RhdHVzGAcgASgJUgpsb2ZpU3RhdHVzEiEKDGxvYW1pX3N0YXR1cxgIIAEoCVILbG9hbWlTdGF0dXMiZQobT251U3RhcnR1cEZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIpkBChpPbnVTaWduYWxEZWdyYWRlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIzChZpbnZlcnNlX2JpdF9lcnJvcl9yYXRlGAQgASgHUhNpbnZlcnNlQml0RXJyb3JSYXRlIpMBChpPbnVEcmlmdE9mV2luZG93SW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIUCgVkcmlmdBgEIAEoB1IFZHJpZnQSFwoHbmV3X2VxZBgFIAEoB1IGbmV3RXFkImgKHk9udUxvc3NPZk9tY2lDaGFubmVsSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyKaAQobT251U2lnbmFsc0ZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEjMKFmludmVyc2VfYml0X2Vycm9yX3JhdGUYBCABKAdSE2ludmVyc2VCaXRFcnJvclJhdGUiggEKIk9udVRyYW5zbWlzc2lvbkludGVyZmVyZW5jZVdhcm5pbmcSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSFAoFZHJpZnQYBCABKAdSBWRyaWZ0InEKHk9udUFjdGl2YXRpb25GYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIfCgtmYWlsX3JlYXNvbhgDIAEoB1IKZmFpbFJlYXNvbiJrCiFPbnVMb3NzT2ZLZXlTeW5jRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMiVAoSUmRpRXJyb3JJbmRpY2F0aW9uEiYKD3JkaV9lcnJvcl9jb3VudBgBIAEoBlINcmRpRXJyb3JDb3VudBIWCgZzdGF0dXMYAiABKAlSBnN0YXR1cyKWAQoYT251SXR1UG9uU3RhdHNJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEkEKDXJkaV9lcnJvcl9pbmQYAyABKAsyGy5vcGVub2x0LlJkaUVycm9ySW5kaWNhdGlvbkgAUgtyZGlFcnJvckluZEIHCgVzdGF0cyJOChxPbnVQcm9jZXNzaW5nRXJyb3JJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkImoKIE9udURlYWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzImoKGU9udVJlbW90ZURlZmVjdEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSHQoKcmRpX2Vycm9ycxgDIAEoBlIJcmRpRXJyb3JzIqEBCihPbnVMb3NzT2ZHRU1DaGFubmVsRGVsaW5lYXRpb25JbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEi0KEmRlbGluZWF0aW9uX2Vycm9ycxgEIAEoB1IRZGVsaW5lYXRpb25FcnJvcnMibQojT251UGh5c2ljYWxFcXVpcG1lbnRFcnJvckluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMibAoiT251TG9zc09mQWNrbm93bGVkZ2VtZW50SW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyKMAQomT251RGlmZmVyZW50aWFsUmVhY2hFeGNlZWRlZEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSGgoIZGlzdGFuY2UYBCABKAdSCGRpc3RhbmNlIvYBCgtHcm91cE1lbWJlchIhCgxpbnRlcmZhY2VfaWQYASABKA1SC2ludGVyZmFjZUlkEkkKDmludGVyZmFjZV90eXBlGAIgASgOMiIub3Blbm9sdC5Hcm91cE1lbWJlci5JbnRlcmZhY2VUeXBlUg1pbnRlcmZhY2VUeXBlEh4KC2dlbV9wb3J0X2lkGAMgASgNUglnZW1Qb3J0SWQSGgoIcHJpb3JpdHkYBCABKA1SCHByaW9yaXR5Ij0KDUludGVyZmFjZVR5cGUSBwoDUE9OEAASEAoMRVBPTl8xR19QQVRIEAESEQoNRVBPTl8xMEdfUEFUSBACIoYCCgVHcm91cBIZCghncm91cF9pZBgBIAEoDVIHZ3JvdXBJZBI8Cgdjb21tYW5kGAIgASgOMiIub3Blbm9sdC5Hcm91cC5Hcm91cE1lbWJlcnNDb21tYW5kUgdjb21tYW5kEi4KB21lbWJlcnMYAyADKAsyFC5vcGVub2x0Lkdyb3VwTWVtYmVyUgdtZW1iZXJzEicKBmFjdGlvbhgEIAEoCzIPLm9wZW5vbHQuQWN0aW9uUgZhY3Rpb24iSwoTR3JvdXBNZW1iZXJzQ29tbWFuZBIPCgtBRERfTUVNQkVSUxAAEhIKDlJFTU9WRV9NRU1CRVJTEAESDwoLU0VUX01FTUJFUlMQAiJaCgpWYWx1ZVBhcmFtEh4KA29udRgBIAEoCzIMLm9wZW5vbHQuT251UgNvbnUSLAoFdmFsdWUYAiABKA4yFi5jb21tb24uVmFsdWVUeXBlLlR5cGVSBXZhbHVlIsMCCg5Qb25SeFBvd2VyRGF0YRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxJSCgtmYWlsX3JlYXNvbhgEIAEoDjIxLm9wZW5vbHQuUG9uUnhQb3dlckRhdGEuUnNzaU1lYXN1cmVtZW50RmFpbFJlYXNvblIKZmFpbFJlYXNvbhIpChFyeF9wb3dlcl9tZWFuX2RibRgFIAEoAVIOcnhQb3dlck1lYW5EYm0iagoZUnNzaU1lYXN1cmVtZW50RmFpbFJlYXNvbhIUChBGQUlMX1JFQVNPTl9OT05FEAASHAoYRkFJTF9SRUFTT05fTk9fREVMSU1JVEVSEAESGQoVRkFJTF9SRUFTT05fTk9fQUNDRVNTEAIiBwoFRW1wdHkynBQKB09wZW5vbHQSRAoKRGlzYWJsZU9sdBIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IhaC0+STAhAiCy92MS9EaXNhYmxlOgEqEkYKC1JlZW5hYmxlT2x0Eg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiF4LT5JMCESIML3YxL1JlZW5hYmxlOgEqEkUKC0FjdGl2YXRlT251Egwub3Blbm9sdC5PbnUaDi5vcGVub2x0LkVtcHR5IhiC0+STAhIiDS92MS9FbmFibGVPbnU6ASoSSAoNRGVhY3RpdmF0ZU9udRIMLm9wZW5vbHQuT251Gg4ub3Blbm9sdC5FbXB0eSIZgtPkkwITIg4vdjEvRGlzYWJsZU9udToBKhJDCglEZWxldGVPbnUSDC5vcGVub2x0Lk9udRoOLm9wZW5vbHQuRW1wdHkiGILT5JMCEiINL3YxL0RlbGV0ZU9udToBKhJJCgpPbWNpTXNnT3V0EhAub3Blbm9sdC5PbWNpTXNnGg4ub3Blbm9sdC5FbXB0eSIZgtPkkwITIg4vdjEvT21jaU1zZ091dDoBKhJPCgxPbnVQYWNrZXRPdXQSEi5vcGVub2x0Lk9udVBhY2tldBoOLm9wZW5vbHQuRW1wdHkiG4LT5JMCFSIQL3YxL09udVBhY2tldE91dDoBKhJYCg9VcGxpbmtQYWNrZXRPdXQSFS5vcGVub2x0LlVwbGlua1BhY2tldBoOLm9wZW5vbHQuRW1wdHkiHoLT5JMCGCITL3YxL1VwbGlua1BhY2tldE91dDoBKhJACgdGbG93QWRkEg0ub3Blbm9sdC5GbG93Gg4ub3Blbm9sdC5FbXB0eSIWgtPkkwIQIgsvdjEvRmxvd0FkZDoBKhJGCgpGbG93UmVtb3ZlEg0ub3Blbm9sdC5GbG93Gg4ub3Blbm9sdC5FbXB0eSIZgtPkkwITIg4vdjEvRmxvd1JlbW92ZToBKhJTCg5IZWFydGJlYXRDaGVjaxIOLm9wZW5vbHQuRW1wdHkaEi5vcGVub2x0LkhlYXJ0YmVhdCIdgtPkkwIXIhIvdjEvSGVhcnRiZWF0Q2hlY2s6ASoSTQoLRW5hYmxlUG9uSWYSEi5vcGVub2x0LkludGVyZmFjZRoOLm9wZW5vbHQuRW1wdHkiGoLT5JMCFCIPL3YxL0VuYWJsZVBvbklmOgEqEk8KDERpc2FibGVQb25JZhISLm9wZW5vbHQuSW50ZXJmYWNlGg4ub3Blbm9sdC5FbXB0eSIbgtPkkwIVIhAvdjEvRGlzYWJsZVBvbklmOgEqElIKDUdldERldmljZUluZm8SDi5vcGVub2x0LkVtcHR5GhMub3Blbm9sdC5EZXZpY2VJbmZvIhyC0+STAhYiES92MS9HZXREZXZpY2VJbmZvOgEqEj8KBlJlYm9vdBIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IhWC0+STAg8iCi92MS9SZWJvb3Q6ASoSVQoRQ29sbGVjdFN0YXRpc3RpY3MSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIggtPkkwIaIhUvdjEvQ29sbGVjdFN0YXRpc3RpY3M6ASoSWQoQR2V0T251U3RhdGlzdGljcxIMLm9wZW5vbHQuT251GhYub3Blbm9sdC5PbnVTdGF0aXN0aWNzIh+C0+STAhkiFC92MS9HZXRPbnVTdGF0aXN0aWNzOgEqEmsKFEdldEdlbVBvcnRTdGF0aXN0aWNzEhIub3Blbm9sdC5PbnVQYWNrZXQaGi5vcGVub2x0LkdlbVBvcnRTdGF0aXN0aWNzIiOC0+STAh0iGC92MS9HZXRHZW1Qb3J0U3RhdGlzdGljczoBKhJyChdDcmVhdGVUcmFmZmljU2NoZWR1bGVycxIfLnRlY2hfcHJvZmlsZS5UcmFmZmljU2NoZWR1bGVycxoOLm9wZW5vbHQuRW1wdHkiJoLT5JMCICIbL3YxL0NyZWF0ZVRyYWZmaWNTY2hlZHVsZXJzOgEqEnIKF1JlbW92ZVRyYWZmaWNTY2hlZHVsZXJzEh8udGVjaF9wcm9maWxlLlRyYWZmaWNTY2hlZHVsZXJzGg4ub3Blbm9sdC5FbXB0eSImgtPkkwIgIhsvdjEvUmVtb3ZlVHJhZmZpY1NjaGVkdWxlcnM6ASoSZgoTQ3JlYXRlVHJhZmZpY1F1ZXVlcxIbLnRlY2hfcHJvZmlsZS5UcmFmZmljUXVldWVzGg4ub3Blbm9sdC5FbXB0eSIigtPkkwIcIhcvdjEvQ3JlYXRlVHJhZmZpY1F1ZXVlczoBKhJmChNSZW1vdmVUcmFmZmljUXVldWVzEhsudGVjaF9wcm9maWxlLlRyYWZmaWNRdWV1ZXMaDi5vcGVub2x0LkVtcHR5IiKC0+STAhwiFy92MS9SZW1vdmVUcmFmZmljUXVldWVzOgEqEjsKEEVuYWJsZUluZGljYXRpb24SDi5vcGVub2x0LkVtcHR5GhMub3Blbm9sdC5JbmRpY2F0aW9uIgAwARJdChVQZXJmb3JtR3JvdXBPcGVyYXRpb24SDi5vcGVub2x0Lkdyb3VwGg4ub3Blbm9sdC5FbXB0eSIkgtPkkwIeIhkvdjEvUGVyZm9ybUdyb3VwT3BlcmF0aW9uOgEqEkkKC0RlbGV0ZUdyb3VwEg4ub3Blbm9sdC5Hcm91cBoOLm9wZW5vbHQuRW1wdHkiGoLT5JMCFCIPL3YxL0RlbGV0ZUdyb3VwOgEqElQKC0dldEV4dFZhbHVlEhMub3Blbm9sdC5WYWx1ZVBhcmFtGhQuY29tbW9uLlJldHVyblZhbHVlcyIagtPkkwIUIg8vdjEvR2V0RXh0VmFsdWU6ASoSXQoRT251SXR1UG9uQWxhcm1TZXQSFi5jb25maWcuT251SXR1UG9uQWxhcm0aDi5vcGVub2x0LkVtcHR5IiCC0+STAhoiFS92MS9PbnVJdHVQb25BbGFybVNldDoBKhJwChlHZXRMb2dpY2FsT251RGlzdGFuY2VaZXJvEgwub3Blbm9sdC5PbnUaGy5vcGVub2x0Lk9udUxvZ2ljYWxEaXN0YW5jZSIogtPkkwIiIh0vdjEvR2V0TG9naWNhbE9udURpc3RhbmNlWmVybzoBKhJoChVHZXRMb2dpY2FsT251RGlzdGFuY2USDC5vcGVub2x0Lk9udRobLm9wZW5vbHQuT251TG9naWNhbERpc3RhbmNlIiSC0+STAh4iGS92MS9HZXRMb2dpY2FsT251RGlzdGFuY2U6ASoSVAoNR2V0UG9uUnhQb3dlchIMLm9wZW5vbHQuT251Ghcub3Blbm9sdC5Qb25SeFBvd2VyRGF0YSIcgtPkkwIWIhEvdjEvR2V0UG9uUnhQb3dlcjoBKkJdChtvcmcub3BlbmNvcmQudm9sdGhhLm9wZW5vbHRCDVZvbHRoYU9wZW5PTFRaL2dpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NC9nby9vcGVub2x0Su73AQoHEgUOAIEGEArRBAoBDBIDDgASMsYEIENvcHlyaWdodCAoYykgMjAxOCBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGlj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BAQKCg0KBQQgAgIBEgT+BAsRCg0KBQQgAgIDEgT+BBQVCgwKAgQhEgaBBQCGBQEKCwoDBCEBEgSBBQgjCgwKBAQhAgASBIIFBBgKDwoFBCECAAQSBoIFBIEFJQoNCgUEIQIABRIEggUECwoNCgUEIQIAARIEggUMEwoNCgUEIQIAAxIEggUWFwoMCgQEIQIBEgSDBQQXCg8KBQQhAgEEEgaDBQSCBRgKDQoFBCECAQUSBIMFBAsKDQoFBCECAQESBIMFDBIKDQoFBCECAQMSBIMFFRYKDAoEBCECAhIEhAUEFgoPCgUEIQICBBIGhAUEgwUXCg0KBQQhAgIFEgSEBQQKCg0KBQQhAgIBEgSEBQsRCg0KBQQhAgIDEgSEBRQVCgwKBAQhAgMSBIUFBCcKDwoFBCECAwQSBoUFBIQFFgoNCgUEIQIDBRIEhQUECwoNCgUEIQIDARIEhQUMIgoNCgUEIQIDAxIEhQUlJgoMCgIEIhIGiAUAjQUBCgsKAwQiARIEiAUIKgoMCgQEIgIAEgSJBQQYCg8KBQQiAgAEEgaJBQSIBSwKDQoFBCICAAUSBIkFBAsKDQoFBCICAAESBIkFDBMKDQoFBCICAAMSBIkFFhcKDAoEBCICARIEigUEFwoPCgUEIgIBBBIGigUEiQUYCg0KBQQiAgEFEgSKBQQLCg0KBQQiAgEBEgSKBQwSCg0KBQQiAgEDEgSKBRUWCgwKBAQiAgISBIsFBBYKDwoFBCICAgQSBosFBIoFFwoNCgUEIgICBRIEiwUECgoNCgUEIgICARIEiwULEQoNCgUEIgICAxIEiwUUFQoMCgQEIgIDEgSMBQQWCg8KBQQiAgMEEgaMBQSLBRYKDQoFBCICAwUSBIwFBAsKDQoFBCICAwESBIwFDBEKDQoFBCICAwMSBIwFFBUKDAoCBCMSBo8FAJMFAQoLCgMEIwESBI8FCCYKDAoEBCMCABIEkAUEGAoPCgUEIwIABBIGkAUEjwUoCg0KBQQjAgAFEgSQBQQLCg0KBQQjAgABEgSQBQwTCg0KBQQjAgADEgSQBRYXCgwKBAQjAgESBJEFBBcKDwoFBCMCAQQSBpEFBJAFGAoNCgUEIwIBBRIEkQUECwoNCgUEIwIBARIEkQUMEgoNCgUEIwIBAxIEkQUVFgoMCgQEIwICEgSSBQQcCg8KBQQjAgIEEgaS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BAQxAgQSBP4FBCEKDwoFBDECBAQSBv4FBP0FLgoNCgUEMQIEBRIE/gUECgoNCgUEMQIEARIE/gULHAoNCgUEMQIEAxIE/gUfIAoKCgIEMhIEgQYAEAoLCgMEMgESBIEGCA1QAVACYgZwcm90bzMK6BYKGnZvbHRoYV9wcm90b3MvcG9uc2ltLnByb3RvEgZ2b2x0aGEaG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90byJVChNQb25TaW1PbnVEZXZpY2VJbmZvEhkKCHVuaV9wb3J0GAEgASgFUgd1bmlQb3J0EiMKDXNlcmlhbF9udW1iZXIYAiABKAlSDHNlcmlhbE51bWJlciJeChBQb25TaW1EZXZpY2VJbmZvEhkKCG5uaV9wb3J0GAEgASgFUgdubmlQb3J0Ei8KBG9udXMYAiADKAsyGy52b2x0aGEuUG9uU2ltT251RGV2aWNlSW5mb1IEb251cyJSCglGbG93VGFibGUSEgoEcG9ydBgBIAEoBVIEcG9ydBIxCgVmbG93cxgCIAMoCzIbLm9wZW5mbG93XzEzLm9mcF9mbG93X3N0YXRzUgVmbG93cyJSCgtQb25TaW1GcmFtZRIOCgJpZBgBIAEoCVICaWQSGAoHcGF5bG9hZBgCIAEoDFIHcGF5bG9hZBIZCghvdXRfcG9ydBgDIAEoBVIHb3V0UG9ydCI/ChNQb25TaW1QYWNrZXRDb3VudGVyEhIKBG5hbWUYASABKAlSBG5hbWUSFAoFdmFsdWUYAiABKANSBXZhbHVlImcKEVBvblNpbVBvcnRNZXRyaWNzEhsKCXBvcnRfbmFtZRgBIAEoCVIIcG9ydE5hbWUSNQoHcGFja2V0cxgCIAMoCzIbLnZvbHRoYS5Qb25TaW1QYWNrZXRDb3VudGVyUgdwYWNrZXRzIlwKDVBvblNpbU1ldHJpY3MSFgoGZGV2aWNlGAEgASgJUgZkZXZpY2USMwoHbWV0cmljcxgCIAMoCzIZLnZvbHRoYS5Qb25TaW1Qb3J0TWV0cmljc1IHbWV0cmljcyIqChRQb25TaW1NZXRyaWNzUmVxdWVzdBISCgRwb3J0GAEgASgFUgRwb3J0MsgCCgZQb25TaW0SOgoJU2VuZEZyYW1lEhMudm9sdGhhLlBvblNpbUZyYW1lGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IgASQAoNUmVjZWl2ZUZyYW1lcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoTLnZvbHRoYS5Qb25TaW1GcmFtZSIAMAESQwoNR2V0RGV2aWNlSW5mbxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoYLnZvbHRoYS5Qb25TaW1EZXZpY2VJbmZvIgASPgoPVXBkYXRlRmxvd1RhYmxlEhEudm9sdGhhLkZsb3dUYWJsZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIAEjsKCEdldFN0YXRzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhUudm9sdGhhLlBvblNpbU1ldHJpY3MiAEJFChNvcmcub3BlbmNvcmQudm9sdGhhWi5naXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjQvZ28vdm9sdGhhStYNCgYSBAAAQwEKCAoBDBIDAAASCggKAQgSAwIARQoJCgIICxIDAgBFCggKAQgSAwMALAoJCgIIARIDAwAsCggKAQISAwUADwoJCgIDABIDBwAlCgkKAgMBEgMIACkKCgoCBAASBAsADgEKCgoDBAABEgMLCBsKCwoEBAACABIDDAQXCg0KBQQAAgAEEgQMBAsdCgwKBQQAAgAFEgMMBAkKDAoFBAACAAESAwwKEgoMCgUEAAIAAxIDDBUWCgsKBAQAAgESAw0EHQoNCgUEAAIBBBIEDQQMFwoMCgUEAAIBBRIDDQQKCgwKBQQAAgEBEgMNCxgKDAoFBAACAQMSAw0bHAoKCgIEARIEEAATAQoKCgMEAQESAxAIGAoLCgQEAQIAEgMRBBcKDQoFBAECAAQSBBEEEBoKDAoFBAECAAUSAxEECQoMCgUEAQIAARIDEQoSCgwKBQQBAgADEgMRFRYKCwoEBAECARIDEgQqCgwKBQQBAgEEEgMSBAwKDAoFBAECAQYSAxINIAoMCgUEAQIBARIDEiElCgwKBQQBAgEDEgMSKCkKCgoCBAISBBUAGAEKCgoDBAIBEgMVCBEKKwoEBAICABIDFgQTIh4gVXNlZCB0byBhZGRyZXNzIHJpZ2h0IGRldmljZQoKDQoFBAICAAQSBBYEFRMKDAoFBAICAAUSAxYECQoMCgUEAgIAARIDFgoOCgwKBQQCAgADEgMWERIKCwoEBAICARIDFwQyCgwKBQQCAgEEEgMXBAwKDAoFBAICAQYSAxcNJwoMCgUEAgIBARIDFygtCgwKBQQCAgEDEgMXMDEKCgoCBAMSBBoAHgEKCgoDBAMBEgMaCBMKCwoEBAMCABIDGwQSCg0KBQQDAgAEEgQbBBoVCgwKBQQDAgAFEgMbBAoKDAoFBAMCAAESAxsLDQoMCgUEAwIAAxIDGxARCgsKBAQDAgESAxwEFgoNCgUEAwIBBBIEHAQbEgoMCgUEAwIBBRIDHAQJCgwKBQQDAgEBEgMcChEKDAoFBAMCAQMSAxwUFQoLCgQEAwICEgMdBBcKDQoFBAMCAgQSBB0EHBYKDAoFBAMCAgUSAx0ECQoMCgUEAwICARIDHQoSCgwKBQQDAgIDEgMdFRYKCgoCBAQSBCAAIwEKCgoDBAQBEgMgCBsKCwoEBAQCABIDIQQUCg0KBQQEAgAEEgQhBCAdCgwKBQQEAgAFEgMhBAoKDAoFBAQCAAESAyELDwoMCgUEBAIAAxIDIRITCgsKBAQEAgESAyIEFAoNCgUEBAIBBBIEIgQhFAoMCgUEBAIBBRIDIgQJCgwKBQQEAgEBEgMiCg8KDAoFBAQCAQMSAyISEwoKCgIEBRIEJQAoAQoKCgMEBQESAyUIGQoLCgQEBQIAEgMmBBkKDQoFBAUCAAQSBCYEJRsKDAoFBAUCAAUSAyYECgoMCgUEBQIAARIDJgsUCgwKBQQFAgADEgMmFxgKCwoEBAUCARIDJwQtCgwKBQQFAgEEEgMnBAwKDAoFBAUCAQYSAycNIAoMCgUEBQIBARIDJyEoCgwKBQQFAgEDEgMnKywKCgoCBAYSBCoALQEKCgoDBAYBEgMqCBUKCwoEBAYCABIDKwQWCg0KBQQGAgAEEgQrBCoXCgwKBQQGAgAFEgMrBAoKDAoFBAYCAAESAysLEQoMCgUEBgIAAxIDKxQVCgsKBAQGAgESAywEKwoMCgUEBgIBBBIDLAQMCgwKBQQGAgEGEgMsDR4KDAoFBAYCAQESAywfJgoMCgUEBgIBAxIDLCkqCgoKAgQHEgQvADEBCgoKAwQHARIDLwgcCgsKBAQHAgASAzAEEwoNCgUEBwIABBIEMAQvHgoMCgUEBwIABRIDMAQJCgwKBQQHAgABEgMwCg4KDAoFBAcCAAMSAzAREgoKCgIGABIEMwBDAQoKCgMGAAESAzMIDgoMCgQGAAIAEgQ0BDUqCgwKBQYAAgABEgM0CBEKDAoFBgACAAISAzQSHQoMCgUGAAIAAxIDNREmCgwKBAYAAgESBDcEOCcKDAoFBgACAQESAzcIFQoMCgUGAAIBAhIDNxYrCgwKBQYAAgEGEgM4ERcKDAoFBgACAQMSAzgYIwoMCgQGAAICEgQ6BDskCgwKBQYAAgIBEgM6CBUKDAoFBgACAgISAzoWKwoMCgUGAAICAxIDOxAgCgwKBAYAAgMSBD0EPikKDAoFBgACAwESAz0IFwoMCgUGAAIDAhIDPRghCgwKBQYAAgMDEgM+ECUKDAoEBgACBBIEQARBIQoMCgUGAAIEARIDQAgQCgwKBQYAAgQCEgNAESYKDAoFBgACBAMSA0EQHWIGcHJvdG8z