CuEsChlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiNgoDQW55EhkKCHR5cGVfdXJsGAEgASgJUgd0eXBlVXJsEhQKBXZhbHVlGAIgASgMUgV2YWx1ZUJvChNjb20uZ29vZ2xlLnByb3RvYnVmQghBbnlQcm90b1ABWiVnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvYW55ogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSoErCgcSBR4AmgEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwA8CgkKAggLEgMjADwKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQApCgkKAggIEgMlACkKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEK5BAKAgQAEgV5AJoBARrWECBgQW55YCBjb250YWlucyBhbiBhcmJpdHJhcnkgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgbWVzc2FnZSBhbG9uZyB3aXRoIGEKIFVSTCB0aGF0IGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgc2VyaWFsaXplZCBtZXNzYWdlLgoKIFByb3RvYnVmIGxpYnJhcnkgcHJvdmlkZXMgc3VwcG9ydCB0byBwYWNrL3VucGFjayBBbnkgdmFsdWVzIGluIHRoZSBmb3JtCiBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBvciBhZGRpdGlvbmFsIGdlbmVyYXRlZCBtZXRob2RzIG9mIHRoZSBBbnkgdHlwZS4KCiBFeGFtcGxlIDE6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gQysrLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnk7CiAgICAgYW55LlBhY2tGcm9tKGZvbyk7CiAgICAgLi4uCiAgICAgaWYgKGFueS5VbnBhY2tUbygmZm9vKSkgewogICAgICAgLi4uCiAgICAgfQoKIEV4YW1wbGUgMjogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBKYXZhLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnkgPSBBbnkucGFjayhmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuaXMoRm9vLmNsYXNzKSkgewogICAgICAgZm9vID0gYW55LnVucGFjayhGb28uY2xhc3MpOwogICAgIH0KCiAgRXhhbXBsZSAzOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIFB5dGhvbi4KCiAgICAgZm9vID0gRm9vKC4uLikKICAgICBhbnkgPSBBbnkoKQogICAgIGFueS5QYWNrKGZvbykKICAgICAuLi4KICAgICBpZiBhbnkuSXMoRm9vLkRFU0NSSVBUT1IpOgogICAgICAgYW55LlVucGFjayhmb28pCiAgICAgICAuLi4KCiAgRXhhbXBsZSA0OiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEdvCgogICAgICBmb28gOj0gJnBiLkZvb3suLi59CiAgICAgIGFueSwgZXJyIDo9IHB0eXBlcy5NYXJzaGFsQW55KGZvbykKICAgICAgLi4uCiAgICAgIGZvbyA6PSAmcGIuRm9ve30KICAgICAgaWYgZXJyIDo9IHB0eXBlcy5Vbm1hcnNoYWxBbnkoYW55LCBmb28pOyBlcnIgIT0gbmlsIHsKICAgICAgICAuLi4KICAgICAgfQoKIFRoZSBwYWNrIG1ldGhvZHMgcHJvdmlkZWQgYnkgcHJvdG9idWYgbGlicmFyeSB3aWxsIGJ5IGRlZmF1bHQgdXNlCiAndHlwZS5nb29nbGVhcGlzLmNvbS9mdWxsLnR5cGUubmFtZScgYXMgdGhlIHR5cGUgVVJMIGFuZCB0aGUgdW5wYWNrCiBtZXRob2RzIG9ubHkgdXNlIHRoZSBmdWxseSBxdWFsaWZpZWQgdHlwZSBuYW1lIGFmdGVyIHRoZSBsYXN0ICcvJwogaW4gdGhlIHR5cGUgVVJMLCBmb3IgZXhhbXBsZSAiZm9vLmJhci5jb20veC95LnoiIHdpbGwgeWllbGQgdHlwZQogbmFtZSAieS56Ii4KCgogSlNPTgogPT09PQogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYW4gYEFueWAgdmFsdWUgdXNlcyB0aGUgcmVndWxhcgogcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlc2VyaWFsaXplZCwgZW1iZWRkZWQgbWVzc2FnZSwgd2l0aCBhbgogYWRkaXRpb25hbCBmaWVsZCBgQHR5cGVgIHdoaWNoIGNvbnRhaW5zIHRoZSB0eXBlIFVSTC4gRXhhbXBsZToKCiAgICAgcGFja2FnZSBnb29nbGUucHJvZmlsZTsKICAgICBtZXNzYWdlIFBlcnNvbiB7CiAgICAgICBzdHJpbmcgZmlyc3RfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgbGFzdF9uYW1lID0gMjsKICAgICB9CgogICAgIHsKICAgICAgICJAdHlwZSI6ICJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wcm9maWxlLlBlcnNvbiIsCiAgICAgICAiZmlyc3ROYW1lIjogPHN0cmluZz4sCiAgICAgICAibGFzdE5hbWUiOiA8c3RyaW5nPgogICAgIH0KCiBJZiB0aGUgZW1iZWRkZWQgbWVzc2FnZSB0eXBlIGlzIHdlbGwta25vd24gYW5kIGhhcyBhIGN1c3RvbSBKU09OCiByZXByZXNlbnRhdGlvbiwgdGhhdCByZXByZXNlbnRhdGlvbiB3aWxsIGJlIGVtYmVkZGVkIGFkZGluZyBhIGZpZWxkCiBgdmFsdWVgIHdoaWNoIGhvbGRzIHRoZSBjdXN0b20gSlNPTiBpbiBhZGRpdGlvbiB0byB0aGUgYEB0eXBlYAogZmllbGQuIEV4YW1wbGUgKGZvciBtZXNzYWdlIFtnb29nbGUucHJvdG9idWYuRHVyYXRpb25dW10pOgoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvdG9idWYuRHVyYXRpb24iLAogICAgICAgInZhbHVlIjogIjEuMjEycyIKICAgICB9CgoKCgoDBAABEgN5CAsK1woKBAQAAgASBJYBAhYayAogQSBVUkwvcmVzb3VyY2UgbmFtZSB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQKIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlLiBUaGlzIHN0cmluZyBtdXN0IGNvbnRhaW4gYXQgbGVhc3QKIG9uZSAiLyIgY2hhcmFjdGVyLiBUaGUgbGFzdCBzZWdtZW50IG9mIHRoZSBVUkwncyBwYXRoIG11c3QgcmVwcmVzZW50CiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHR5cGUgKGFzIGluCiBgcGF0aC9nb29nbGUucHJvdG9idWYuRHVyYXRpb25gKS4gVGhlIG5hbWUgc2hvdWxkIGJlIGluIGEgY2Fub25pY2FsIGZvcm0KIChlLmcuLCBsZWFkaW5nICIuIiBpcyBub3QgYWNjZXB0ZWQpLgoKIEluIHByYWN0aWNlLCB0ZWFtcyB1c3VhbGx5IHByZWNvbXBpbGUgaW50byB0aGUgYmluYXJ5IGFsbCB0eXBlcyB0aGF0IHRoZXkKIGV4cGVjdCBpdCB0byB1c2UgaW4gdGhlIGNvbnRleHQgb2YgQW55LiBIb3dldmVyLCBmb3IgVVJMcyB3aGljaCB1c2UgdGhlCiBzY2hlbWUgYGh0dHBgLCBgaHR0cHNgLCBvciBubyBzY2hlbWUsIG9uZSBjYW4gb3B0aW9uYWxseSBzZXQgdXAgYSB0eXBlCiBzZXJ2ZXIgdGhhdCBtYXBzIHR5cGUgVVJMcyB0byBtZXNzYWdlIGRlZmluaXRpb25zIGFzIGZvbGxvd3M6CgogKiBJZiBubyBzY2hlbWUgaXMgcHJvdmlkZWQsIGBodHRwc2AgaXMgYXNzdW1lZC4KICogQW4gSFRUUCBHRVQgb24gdGhlIFVSTCBtdXN0IHlpZWxkIGEgW2dvb2dsZS5wcm90b2J1Zi5UeXBlXVtdCiAgIHZhbHVlIGluIGJpbmFyeSBmb3JtYXQsIG9yIHByb2R1Y2UgYW4gZXJyb3IuCiAqIEFwcGxpY2F0aW9ucyBhcmUgYWxsb3dlZCB0byBjYWNoZSBsb29rdXAgcmVzdWx0cyBiYXNlZCBvbiB0aGUKICAgVVJMLCBvciBoYXZlIHRoZW0gcHJlY29tcGlsZWQgaW50byBhIGJpbmFyeSB0byBhdm9pZCBhbnkKICAgbG9va3VwLiBUaGVyZWZvcmUsIGJpbmFyeSBjb21wYXRpYmlsaXR5IG5lZWRzIHRvIGJlIHByZXNlcnZlZAogICBvbiBjaGFuZ2VzIHRvIHR5cGVzLiAoVXNlIHZlcnNpb25lZCB0eXBlIG5hbWVzIHRvIG1hbmFnZQogICBicmVha2luZyBjaGFuZ2VzLikKCiBOb3RlOiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGN1cnJlbnRseSBhdmFpbGFibGUgaW4gdGhlIG9mZmljaWFsCiBwcm90b2J1ZiByZWxlYXNlLCBhbmQgaXQgaXMgbm90IHVzZWQgZm9yIHR5cGUgVVJMcyBiZWdpbm5pbmcgd2l0aAogdHlwZS5nb29nbGVhcGlzLmNvbS4KCiBTY2hlbWVzIG90aGVyIHRoYW4gYGh0dHBgLCBgaHR0cHNgIChvciB0aGUgZW1wdHkgc2NoZW1lKSBtaWdodCBiZQogdXNlZCB3aXRoIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHNlbWFudGljcy4KCgoOCgUEAAIABBIFlgECeQ0KDQoFBAACAAUSBJYBAggKDQoFBAACAAESBJYBCREKDQoFBAACAAMSBJYBFBUKVwoEBAACARIEmQECEhpJIE11c3QgYmUgYSB2YWxpZCBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBvZiB0aGUgYWJvdmUgc3BlY2lmaWVkIHR5cGUuCgoPCgUEAAIBBBIGmQEClgEWCg0KBQQAAgEFEgSZAQIHCg0KBQQAAgEBEgSZAQgNCg0KBQQAAgEDEgSZARARYgZwcm90bzMKxBEKG3ZvbHRoYV9wcm90b3MvYWRhcHRlci5wcm90bxIHYWRhcHRlchoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90byJSCg1BZGFwdGVyQ29uZmlnEkEKEWFkZGl0aW9uYWxfY29uZmlnGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIQYWRkaXRpb25hbENvbmZpZyKjAwoHQWRhcHRlchIOCgJpZBgBIAEoCVICaWQSFgoGdmVuZG9yGAIgASgJUgZ2ZW5kb3ISGAoHdmVyc2lvbhgDIAEoCVIHdmVyc2lvbhIuCgZjb25maWcYECABKAsyFi5hZGFwdGVyLkFkYXB0ZXJDb25maWdSBmNvbmZpZxJLChZhZGRpdGlvbmFsX2Rlc2NyaXB0aW9uGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIVYWRkaXRpb25hbERlc2NyaXB0aW9uEiwKEmxvZ2ljYWxfZGV2aWNlX2lkcxgEIAMoCVIQbG9naWNhbERldmljZUlkcxItChJsYXN0X2NvbW11bmljYXRpb24YBSABKANSEWxhc3RDb21tdW5pY2F0aW9uEiYKDmN1cnJlbnRSZXBsaWNhGAYgASgFUg5jdXJyZW50UmVwbGljYRIkCg10b3RhbFJlcGxpY2FzGAcgASgFUg10b3RhbFJlcGxpY2FzEhoKCGVuZHBvaW50GAggASgJUghlbmRwb2ludBISCgR0eXBlGAkgASgJUgR0eXBlIjIKCEFkYXB0ZXJzEiYKBWl0ZW1zGAEgAygLMhAuYWRhcHRlci5BZGFwdGVyUgVpdGVtc0JcChtvcmcub3BlbmNvcmQudm9sdGhhLmFkYXB0ZXJCDVZvbHRoYUFkYXB0ZXJaLmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby92b2x0aGFK7AsKBhIEAAAwAQoICgEMEgMAABIKCAoBCBIDAgBFCgkKAggLEgMCAEUKCAoBCBIDAwA0CgkKAggBEgMDADQKCAoBCBIDBAAuCgkKAggIEgMEAC4KCAoBAhIDBgAQCgkKAgMAEgMIACMKCgoCBAASBAoADwEKCgoDBAABEgMKCBUKQAoEBAACABIDDQQvGjMgQ3VzdG9tICh2ZW5kb3Itc3BlY2lmaWMpIGNvbmZpZ3VyYXRpb24gYXR0cmlidXRlcwoKDQoFBAACAAQSBA0EChcKDAoFBAACAAYSAw0EFwoMCgUEAAIAARIDDRgpCgwKBQQAAgADEgMNLC4KJwoCBAESBBIALAEaGyBBZGFwdGVyIChzb2Z0d2FyZSBwbHVnaW4pCgoKCgMEAQESAxIIDwpeCgQEAQIAEgMWBBIaUSB0aGUgYWRhcHRlciBJRCBoYXMgdG8gYmUgdW5pcXVlLAogaXQgd2lsbCBiZSBnZW5lcmF0ZWQgYXMgVHlwZSArIEN1cnJlbnRSZXBsaWNhCgoNCgUEAQIABBIEFgQSEQoMCgUEAQIABRIDFgQKCgwKBQQBAgABEgMWCw0KDAoFBAECAAMSAxYQEQoLCgQEAQIBEgMXBBYKDQoFBAECAQQSBBcEFhIKDAoFBAECAQUSAxcECgoMCgUEAQIBARIDFwsRCgwKBQQBAgEDEgMXFBUKCwoEBAECAhIDGAQXCg0KBQQBAgIEEgQYBBcWCgwKBQQBAgIFEgMYBAoKDAoFBAECAgESAxgLEgoMCgUEAQICAxIDGBUWCiQKBAQBAgMSAxsEHhoXIEFkYXB0ZXIgY29uZmlndXJhdGlvbgoKDQoFBAECAwQSBBsEGBcKDAoFBAECAwYSAxsEEQoMCgUEAQIDARIDGxIYCgwKBQQBAgMDEgMbGx0KOgoEBAECBBIDHgQ0Gi0gQ3VzdG9tIGRlc2NyaXB0b3JzIGFuZCBjdXN0b20gY29uZmlndXJhdGlvbgoKDQoFBAECBAQSBB4EGx4KDAoFBAECBAYSAx4EFwoMCgUEAQIEARIDHhguCgwKBQQBAgQDEgMeMTMKJgoEBAECBRIDIAQrIhkgTG9naWNhbCBkZXZpY2VzICJvd25lZCIKCgwKBQQBAgUEEgMgBAwKDAoFBAECBQUSAyANEwoMCgUEAQIFARIDIBQmCgwKBQQBAgUDEgMgKSoKSQoEBAECBhIDIwQhGjwgdGltZXN0YW1wIHdoZW4gdGhlIGFkYXB0ZXIgbGFzdCBzZW50IGEgbWVzc2FnZSB0byB0aGUgY29yZQoKDQoFBAECBgQSBCMEICsKDAoFBAECBgUSAyMECQoMCgUEAQIGARIDIwocCgwKBQQBAgYDEgMjHyAKCwoEBAECBxIDJQQdCg0KBQQBAgcEEgQlBCMhCgwKBQQBAgcFEgMlBAkKDAoFBAECBwESAyUKGAoMCgUEAQIHAxIDJRscCgsKBAQBAggSAyYEHAoNCgUEAQIIBBIEJgQlHQoMCgUEAQIIBRIDJgQJCgwKBQQBAggBEgMmChcKDAoFBAECCAMSAyYaGwoLCgQEAQIJEgMnBBgKDQoFBAECCQQSBCcEJhwKDAoFBAECCQUSAycECgoMCgUEAQIJARIDJwsTCgwKBQQBAgkDEgMnFhcKdwoEBAECChIDKgQUGmogYWxsIHJlcGxpY2FzIG9mIHRoZSBzYW1lIGFkYXB0ZXIgd2lsbCBoYXZlIHRoZSBzYW1lIHR5cGUKIGl0IGlzIHVzZWQgdG8gYXNzb2NpYXRlIGEgZGV2aWNlIHRvIGFuIGFkYXB0ZXIKCg0KBQQBAgoEEgQqBCcYCgwKBQQBAgoFEgMqBAoKDAoFBAECCgESAyoLDwoMCgUEAQIKAxIDKhITCgoKAgQCEgQuADABCgoKAwQCARIDLggQCgsKBAQCAgASAy8EHwoMCgUEAgIABBIDLwQMCgwKBQQCAgAGEgMvDRQKDAoFBAICAAESAy8VGgoMCgUEAgIAAxIDLx0eYgZwcm90bzMKuBIKG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIgcKBUVtcHR5QnYKE2NvbS5nb29nbGUucHJvdG9idWZCCkVtcHR5UHJvdG9QAVonZ2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHR5cGVzL2VtcHR5+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSv4QCgYSBB4AMxAKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAD4KCQoCCAsSAyMAPgoICgEIEgMkACwKCQoCCAESAyQALAoICgEIEgMlACsKCQoCCAgSAyUAKwoICgEIEgMmACIKCQoCCAoSAyYAIgoICgEIEgMnACEKCQoCCCQSAycAIQoICgEIEgMoAB8KCQoCCB8SAygAHwr7AgoCBAASAzMAEBrvAiBBIGdlbmVyaWMgZW1wdHkgbWVzc2FnZSB0aGF0IHlvdSBjYW4gcmUtdXNlIHRvIGF2b2lkIGRlZmluaW5nIGR1cGxpY2F0ZWQKIGVtcHR5IG1lc3NhZ2VzIGluIHlvdXIgQVBJcy4gQSB0eXBpY2FsIGV4YW1wbGUgaXMgdG8gdXNlIGl0IGFzIHRoZSByZXF1ZXN0CiBvciB0aGUgcmVzcG9uc2UgdHlwZSBvZiBhbiBBUEkgbWV0aG9kLiBGb3IgaW5zdGFuY2U6CgogICAgIHNlcnZpY2UgRm9vIHsKICAgICAgIHJwYyBCYXIoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KSByZXR1cm5zIChnb29nbGUucHJvdG9idWYuRW1wdHkpOwogICAgIH0KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEVtcHR5YCBpcyBlbXB0eSBKU09OIG9iamVjdCBge31gLgoKCgoDBAABEgMzCA1iBnByb3RvMwq1Hwoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8SBmNvbW1vbiIUCgJJRBIOCgJpZBgBIAEoCVICaWQiJwoDSURzEiAKBWl0ZW1zGAEgAygLMgouY29tbW9uLklEUgVpdGVtcyJ6CgpDb25uZWN0aW9uEhoKCGVuZHBvaW50GAEgASgJUghlbmRwb2ludBIgCgtjb250ZXh0SW5mbxgCIAEoCVILY29udGV4dEluZm8SLgoTa2VlcF9hbGl2ZV9pbnRlcnZhbBgDIAEoA1IRa2VlcEFsaXZlSW50ZXJ2YWwiaAoKQWRtaW5TdGF0ZSJaCgVUeXBlcxILCgdVTktOT1dOEAASEgoOUFJFUFJPVklTSU9ORUQQARILCgdFTkFCTEVEEAISDAoIRElTQUJMRUQQAxIVChFET1dOTE9BRElOR19JTUFHRRAEIpEBCgpPcGVyU3RhdHVzIoIBCgVUeXBlcxILCgdVTktOT1dOEAASDgoKRElTQ09WRVJFRBABEg4KCkFDVElWQVRJTkcQAhILCgdURVNUSU5HEAMSCgoGQUNUSVZFEAQSCgoGRkFJTEVEEAUSDwoLUkVDT05DSUxJTkcQBhIW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LmFwaSJ5CgRIdHRwEioKBXJ1bGVzGAEgAygLMhQuZ29vZ2xlLmFwaS5IdHRwUnVsZVIFcnVsZXMSRQofZnVsbHlfZGVjb2RlX3Jlc2VydmVkX2V4cGFuc2lvbhgCIAEoCFIcZnVsbHlEZWNvZGVSZXNlcnZlZEV4cGFuc2lvbiLaAgoISHR0cFJ1bGUSGgoIc2VsZWN0b3IYASABKAlSCHNlbGVjdG9yEhIKA2dldBgCIAEoCUgAUgNnZXQSEgoDcHV0GAMgASgJSABSA3B1dBIUCgRwb3N0GAQgASgJSABSBHBvc3QSGAoGZGVsZXRlGAUgASgJSABSBmRlbGV0ZRIWCgVwYXRjaBgGIAEoCUgAUgVwYXRjaBI3CgZjdXN0b20YCCABKAsyHS5nb29nbGUuYXBpLkN1c3RvbUh0dHBQYXR0ZXJuSABSBmN1c3RvbRISCgRib2R5GAcgASgJUgRib2R5EiMKDXJlc3BvbnNlX2JvZHkYDCABKAlSDHJlc3BvbnNlQm9keRJFChNhZGRpdGlvbmFsX2JpbmRpbmdzGAsgAygLMhQuZ29vZ2xlLmFwaS5IdHRwUnVsZVISYWRkaXRpb25hbEJpbmRpbmdzQgkKB3BhdHRlcm4iOwoRQ3VzdG9tSHR0cFBhdHRlcm4SEgoEa2luZBgBIAEoCVIEa2luZBISCgRwYXRoGAIgASgJUgRwYXRoQmoKDmNvbS5nb29nbGUuYXBpQglIdHRwUHJvdG9QAVpBZ29vZ2xlLmdvbGFuZy5vcmcvZ2VucHJvdG8vZ29vZ2xlYXBpcy9hcGkvYW5ub3RhdGlvbnM7YW5ub3RhdGlvbnP4AQGiAgRHQVBJSpd0CgcSBQ8A+wIBCr4ECgEMEgMPABIyswQgQ29weXJpZ2h0IDIwMTggR29vZ2xlIExMQy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCgoICgECEgMRABMKCAoBCBIDEwAfCgkKAggfEgMTAB8KCAoBCBIDFABYCgkKAggLEgMUAFgKCAoBCBIDFQAiCgkKAggKEgMVACIKCAoBCBIDFgAqCgkKAggIEgMWACoKCAoBCBIDFwAnCgkKAggBEgMXACcKCAoBCBIDGAAiCgkKAggkEgMYACIKzQEKAgQAEgQdACoBGsABIERlZmluZXMgdGhlIEhUVFAgY29uZmlndXJhdGlvbiBmb3IgYW4gQVBJIHNlcnZpY2UuIEl0IGNvbnRhaW5zIGEgbGlzdCBvZgogW0h0dHBSdWxlXVtnb29nbGUuYXBpLkh0dHBSdWxlXSwgZWFjaCBzcGVjaWZ5aW5nIHRoZSBtYXBwaW5nIG9mIGFuIFJQQyBtZXRob2QKIHRvIG9uZSBvciBtb3JlIEhUVFAgUkVTVCBBUEkgbWV0aG9kcy4KCgoKAwQAARIDHQgMCqIBCgQEAAIAEgMhAh4alAEgQSBsaXN0IG9mIEhUVFAgY29uZmlndXJhdGlvbiBydWxlcyB0aGF0IGFwcGx5IHRvIGluZGl2aWR1YWwgQVBJIG1ldGhvZHMuCgogKipOT1RFOioqIEFsbCBzZXJ2aWNlIGNvbmZpZ3VyYXRpb24gcnVsZXMgZm9sbG93ICJsYXN0IG9uZSB3aW5zIiBvcmRlci4KCgwKBQQAAgAEEgMhAgoKDAoFBAACAAYSAyELEwoMCgUEAAIAARIDIRQZCgwKBQQAAgADEgMhHB0KkwIKBAQAAgESAykCKxqFAiBXaGVuIHNldCB0byB0cnVlLCBVUkwgcGF0aCBwYXJtZXRlcnMgd2lsbCBiZSBmdWxseSBVUkktZGVjb2RlZCBleGNlcHQgaW4KIGNhc2VzIG9mIHNpbmdsZSBzZWdtZW50IG1hdGNoZXMgaW4gcmVzZXJ2ZWQgZXhwYW5zaW9uLCB3aGVyZSAiJTJGIiB3aWxsIGJlCiBsZWZ0IGVuY29kZWQuCgogVGhlIGRlZmF1bHQgYmVoYXZpb3IgaXMgdG8gbm90IGRlY29kZSBSRkMgNjU3MCByZXNlcnZlZCBjaGFyYWN0ZXJzIGluIG11bHRpCiBzZWdtZW50IG1hdGNoZXMuCgoNCgUEAAIBBBIEKQIhHgoMCgUEAAIBBRIDKQIGCgwKBQQAAgEBEgMpByYKDAoFBAACAQMSAykpKgq7UwoCBAESBrwCAPICARqsUyAjIGdSUEMgVHJhbnNjb2RpbmcKCiBnUlBDIFRyYW5zY29kaW5nIGlzIGEgZmVhdHVyZSBmb3IgbWFwcGluZyBiZXR3ZWVuIGEgZ1JQQyBtZXRob2QgYW5kIG9uZSBvcgogbW9yZSBIVFRQIFJFU1QgZW5kcG9pbnRzLiBJdCBhbGxvd3MgZGV2ZWxvcGVycyB0byBidWlsZCBhIHNpbmdsZSBBUEkgc2VydmljZQogdGhhdCBzdXBwb3J0cyBib3RoIGdSUEMgQVBJcyBhbmQgUkVTVCBBUElzLiBNYW55IHN5c3RlbXMsIGluY2x1ZGluZyBbR29vZ2xlCiBBUElzXShodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlYXBpcy9nb29nbGVhcGlzKSwKIFtDbG91ZCBFbmRwb2ludHNdKGh0dHBzOi8vY2xvdWQuZ29vZ2xlLmNvbS9lbmRwb2ludHMpLCBbZ1JQQwogR2F0ZXdheV0oaHR0cHM6Ly9naXRodWIuY29tL2dycGMtZWNvc3lzdGVtL2dycGMtZ2F0ZXdheSksCiBhbmQgW0Vudm95XShodHRwczovL2dpdGh1Yi5jb20vZW52b3lwcm94eS9lbnZveSkgcHJveHkgc3VwcG9ydCB0aGlzIGZlYXR1cmUKIGFuZCB1c2UgaXQgZm9yIGxhcmdlIHNjYWxlIHByb2R1Y3Rpb24gc2VydmljZXMuCgogYEh0dHBSdWxlYCBkZWZpbmVzIHRoZSBzY2hlbWEgb2YgdGhlIGdSUEMvUkVTVCBtYXBwaW5nLiBUaGUgbWFwcGluZyBzcGVjaWZpZXMKIGhvdyBkaWZmZXJlbnQgcG9ydGlvbnMgb2YgdGhlIGdSUEMgcmVxdWVzdCBtZXNzYWdlIGFyZSBtYXBwZWQgdG8gdGhlIFVSTAogcGF0aCwgVVJMIHF1ZXJ5IHBhcmFtZXRlcnMsIGFuZCBIVFRQIHJlcXVlc3QgYm9keS4gSXQgYWxzbyBjb250cm9scyBob3cgdGhlCiBnUlBDIHJlc3BvbnNlIG1lc3NhZ2UgaXMgbWFwcGVkIHRvIHRoZSBIVFRQIHJlc3BvbnNlIGJvZHkuIGBIdHRwUnVsZWAgaXMKIHR5cGljYWxseSBzcGVjaWZpZWQgYXMgYW4gYGdvb2dsZS5hcGkuaHR0cGAgYW5ub3RhdGlvbiBvbiB0aGUgZ1JQQyBtZXRob2QuCgogRWFjaCBtYXBwaW5nIHNwZWNpZmllcyBhIFVSTCBwYXRoIHRlbXBsYXRlIGFuZCBhbiBIVFRQIG1ldGhvZC4gVGhlIHBhdGgKIHRlbXBsYXRlIG1heSByZWZlciB0byBvbmUgb3IgbW9yZSBmaWVsZHMgaW4gdGhlIGdSUEMgcmVxdWVzdCBtZXNzYWdlLCBhcyBsb25nCiBhcyBlYWNoIGZpZWxkIGlzIGEgbm9uLXJlcGVhdGVkIGZpZWxkIHdpdGggYSBwcmltaXRpdmUgKG5vbi1tZXNzYWdlKSB0eXBlLgogVGhlIHBhdGggdGVtcGxhdGUgY29udHJvbHMgaG93IGZpZWxkcyBvZiB0aGUgcmVxdWVzdCBtZXNzYWdlIGFyZSBtYXBwZWQgdG8KIHRoZSBVUkwgcGF0aC4KCiBFeGFtcGxlOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgR2V0TWVzc2FnZShHZXRNZXNzYWdlUmVxdWVzdCkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgICBnZXQ6ICIvdjEve25hbWU9bWVzc2FnZXMvKn0iCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgR2V0TWVzc2FnZVJlcXVlc3QgewogICAgICAgc3RyaW5nIG5hbWUgPSAxOyAvLyBNYXBwZWQgdG8gVVJMIHBhdGguCiAgICAgfQogICAgIG1lc3NhZ2UgTWVzc2FnZSB7CiAgICAgICBzdHJpbmcgdGV4dCA9IDE7IC8vIFRoZSByZXNvdXJjZSBjb250ZW50LgogICAgIH0KCiBUaGlzIGVuYWJsZXMgYW4gSFRUUCBSRVNUIHRvIGdSUEMgbWFwcGluZyBhcyBiZWxvdzoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBHRVQgL3YxL21lc3NhZ2VzLzEyMzQ1NmAgIHwgYEdldE1lc3NhZ2UobmFtZTogIm1lc3NhZ2VzLzEyMzQ1NiIpYAoKIEFueSBmaWVsZHMgaW4gdGhlIHJlcXVlc3QgbWVzc2FnZSB3aGljaCBhcmUgbm90IGJvdW5kIGJ5IHRoZSBwYXRoIHRlbXBsYXRlCiBhdXRvbWF0aWNhbGx5IGJlY29tZSBIVFRQIHF1ZXJ5IHBhcmFtZXRlcnMgaWYgdGhlcmUgaXMgbm8gSFRUUCByZXF1ZXN0IGJvZHkuCiBGb3IgZXhhbXBsZToKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIEdldE1lc3NhZ2UoR2V0TWVzc2FnZVJlcXVlc3QpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgICAgZ2V0OiIvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIEdldE1lc3NhZ2VSZXF1ZXN0IHsKICAgICAgIG1lc3NhZ2UgU3ViTWVzc2FnZSB7CiAgICAgICAgIHN0cmluZyBzdWJmaWVsZCA9IDE7CiAgICAgICB9CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7IC8vIE1hcHBlZCB0byBVUkwgcGF0aC4KICAgICAgIGludDY0IHJldmlzaW9uID0gMjsgICAgLy8gTWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXIgYHJldmlzaW9uYC4KICAgICAgIFN1Yk1lc3NhZ2Ugc3ViID0gMzsgICAgLy8gTWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXIgYHN1Yi5zdWJmaWVsZGAuCiAgICAgfQoKIFRoaXMgZW5hYmxlcyBhIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZyBhcyBiZWxvdzoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBHRVQgL3YxL21lc3NhZ2VzLzEyMzQ1Nj9yZXZpc2lvbj0yJnN1Yi5zdWJmaWVsZD1mb29gIHwKIGBHZXRNZXNzYWdlKG1lc3NhZ2VfaWQ6ICIxMjM0NTYiIHJldmlzaW9uOiAyIHN1YjogU3ViTWVzc2FnZShzdWJmaWVsZDoKICJmb28iKSlgCgogTm90ZSB0aGF0IGZpZWxkcyB3aGljaCBhcmUgbWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXJzIG11c3QgaGF2ZSBhCiBwcmltaXRpdmUgdHlwZSBvciBhIHJlcGVhdGVkIHByaW1pdGl2ZSB0eXBlIG9yIGEgbm9uLXJlcGVhdGVkIG1lc3NhZ2UgdHlwZS4KIEluIHRoZSBjYXNlIG9mIGEgcmVwZWF0ZWQgdHlwZSwgdGhlIHBhcmFtZXRlciBjYW4gYmUgcmVwZWF0ZWQgaW4gdGhlIFVSTAogYXMgYC4uLj9wYXJhbT1BJnBhcmFtPUJgLiBJbiB0aGUgY2FzZSBvZiBhIG1lc3NhZ2UgdHlwZSwgZWFjaCBmaWVsZCBvZiB0aGUKIG1lc3NhZ2UgaXMgbWFwcGVkIHRvIGEgc2VwYXJhdGUgcGFyYW1ldGVyLCBzdWNoIGFzCiBgLi4uP2Zvby5hPUEmZm9vLmI9QiZmb28uYz1DYC4KCiBGb3IgSFRUUCBtZXRob2RzIHRoYXQgYWxsb3cgYSByZXF1ZXN0IGJvZHksIHRoZSBgYm9keWAgZmllbGQKIHNwZWNpZmllcyB0aGUgbWFwcGluZy4gQ29uc2lkZXIgYSBSRVNUIHVwZGF0ZSBtZXRob2Qgb24gdGhlCiBtZXNzYWdlIHJlc291cmNlIGNvbGxlY3Rpb246CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBVcGRhdGVNZXNzYWdlKFVwZGF0ZU1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICBwYXRjaDogIi92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgYm9keTogIm1lc3NhZ2UiCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgVXBkYXRlTWVzc2FnZVJlcXVlc3QgewogICAgICAgc3RyaW5nIG1lc3NhZ2VfaWQgPSAxOyAvLyBtYXBwZWQgdG8gdGhlIFVSTAogICAgICAgTWVzc2FnZSBtZXNzYWdlID0gMjsgICAvLyBtYXBwZWQgdG8gdGhlIGJvZHkKICAgICB9CgogVGhlIGZvbGxvd2luZyBIVFRQIEpTT04gdG8gUlBDIG1hcHBpbmcgaXMgZW5hYmxlZCwgd2hlcmUgdGhlCiByZXByZXNlbnRhdGlvbiBvZiB0aGUgSlNPTiBpbiB0aGUgcmVxdWVzdCBib2R5IGlzIGRldGVybWluZWQgYnkKIHByb3RvcyBKU09OIGVuY29kaW5nOgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYFBBVENIIC92MS9tZXNzYWdlcy8xMjM0NTYgeyAidGV4dCI6ICJIaSEiIH1gIHwgYFVwZGF0ZU1lc3NhZ2UobWVzc2FnZV9pZDoKICIxMjM0NTYiIG1lc3NhZ2UgeyB0ZXh0OiAiSGkhIiB9KWAKCiBUaGUgc3BlY2lhbCBuYW1lIGAqYCBjYW4gYmUgdXNlZCBpbiB0aGUgYm9keSBtYXBwaW5nIHRvIGRlZmluZSB0aGF0CiBldmVyeSBmaWVsZCBub3QgYm91bmQgYnkgdGhlIHBhdGggdGVtcGxhdGUgc2hvdWxkIGJlIG1hcHBlZCB0byB0aGUKIHJlcXVlc3QgYm9keS4gIFRoaXMgZW5hYmxlcyB0aGUgZm9sbG93aW5nIGFsdGVybmF0aXZlIGRlZmluaXRpb24gb2YKIHRoZSB1cGRhdGUgbWV0aG9kOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgVXBkYXRlTWVzc2FnZShNZXNzYWdlKSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICBwYXRjaDogIi92MS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgYm9keTogIioiCiAgICAgICAgIH07CiAgICAgICB9CiAgICAgfQogICAgIG1lc3NhZ2UgTWVzc2FnZSB7CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7CiAgICAgICBzdHJpbmcgdGV4dCA9IDI7CiAgICAgfQoKCiBUaGUgZm9sbG93aW5nIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZyBpcyBlbmFibGVkOgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYFBBVENIIC92MS9tZXNzYWdlcy8xMjM0NTYgeyAidGV4dCI6ICJIaSEiIH1gIHwgYFVwZGF0ZU1lc3NhZ2UobWVzc2FnZV9pZDoKICIxMjM0NTYiIHRleHQ6ICJIaSEiKWAKCiBOb3RlIHRoYXQgd2hlbiB1c2luZyBgKmAgaW4gdGhlIGJvZHkgbWFwcGluZywgaXQgaXMgbm90IHBvc3NpYmxlIHRvCiBoYXZlIEhUVFAgcGFyYW1ldGVycywgYXMgYWxsIGZpZWxkcyBub3QgYm91bmQgYnkgdGhlIHBhdGggZW5kIGluCiB0aGUgYm9keS4gVGhpcyBtYWtlcyB0aGlzIG9wdGlvbiBtb3JlIHJhcmVseSB1c2VkIGluIHByYWN0aWNlIHdoZW4KIGRlZmluaW5nIFJFU1QgQVBJcy4gVGhlIGNvbW1vbiB1c2FnZSBvZiBgKmAgaXMgaW4gY3VzdG9tIG1ldGhvZHMKIHdoaWNoIGRvbid0IHVzZSB0aGUgVVJMIGF0IGFsbCBmb3IgdHJhbnNmZXJyaW5nIGRhdGEuCgogSXQgaXMgcG9zc2libGUgdG8gZGVmaW5lIG11bHRpcGxlIEhUVFAgbWV0aG9kcyBmb3Igb25lIFJQQyBieSB1c2luZwogdGhlIGBhZGRpdGlvbmFsX2JpbmRpbmdzYCBvcHRpb24uIEV4YW1wbGU6CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBHZXRNZXNzYWdlKEdldE1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICBnZXQ6ICIvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICAgIGFkZGl0aW9uYWxfYmluZGluZ3MgewogICAgICAgICAgICAgZ2V0OiAiL3YxL3VzZXJzL3t1c2VyX2lkfS9tZXNzYWdlcy97bWVzc2FnZV9pZH0iCiAgICAgICAgICAgfQogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIEdldE1lc3NhZ2VSZXF1ZXN0IHsKICAgICAgIHN0cmluZyBtZXNzYWdlX2lkID0gMTsKICAgICAgIHN0cmluZyB1c2VyX2lkID0gMjsKICAgICB9CgogVGhpcyBlbmFibGVzIHRoZSBmb2xsb3dpbmcgdHdvIGFsdGVybmF0aXZlIEhUVFAgSlNPTiB0byBSUEMgbWFwcGluZ3M6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgR0VUIC92MS9tZXNzYWdlcy8xMjM0NTZgIHwgYEdldE1lc3NhZ2UobWVzc2FnZV9pZDogIjEyMzQ1NiIpYAogYEdFVCAvdjEvdXNlcnMvbWUvbWVzc2FnZXMvMTIzNDU2YCB8IGBHZXRNZXNzYWdlKHVzZXJfaWQ6ICJtZSIgbWVzc2FnZV9pZDoKICIxMjM0NTYiKWAKCiAjIyBSdWxlcyBmb3IgSFRUUCBtYXBwaW5nCgogMS4gTGVhZiByZXF1ZXN0IGZpZWxkcyAocmVjdXJzaXZlIGV4cGFuc2lvbiBuZXN0ZWQgbWVzc2FnZXMgaW4gdGhlIHJlcXVlc3QKICAgIG1lc3NhZ2UpIGFyZSBjbGFzc2lmaWVkIGludG8gdGhyZWUgY2F0ZWdvcmllczoKICAgIC0gRmllbGRzIHJlZmVycmVkIGJ5IHRoZSBwYXRoIHRlbXBsYXRlLiBUaGV5IGFyZSBwYXNzZWQgdmlhIHRoZSBVUkwgcGF0aC4KICAgIC0gRmllbGRzIHJlZmVycmVkIGJ5IHRoZSBbSHR0cFJ1bGUuYm9keV1bZ29vZ2xlLmFwaS5IdHRwUnVsZS5ib2R5XS4gVGhleQogICAgYXJlIHBhc3NlZCB2aWEgdGhlIEhUVFAKICAgICAgcmVxdWVzdCBib2R5LgogICAgLSBBbGwgb3RoZXIgZmllbGRzIGFyZSBwYXNzZWQgdmlhIHRoZSBVUkwgcXVlcnkgcGFyYW1ldGVycywgYW5kIHRoZQogICAgICBwYXJhbWV0ZXIgbmFtZSBpcyB0aGUgZmllbGQgcGF0aCBpbiB0aGUgcmVxdWVzdCBtZXNzYWdlLiBBIHJlcGVhdGVkCiAgICAgIGZpZWxkIGNhbiBiZSByZXByZXNlbnRlZCBhcyBtdWx0aXBsZSBxdWVyeSBwYXJhbWV0ZXJzIHVuZGVyIHRoZSBzYW1lCiAgICAgIG5hbWUuCiAgMi4gSWYgW0h0dHBSdWxlLmJvZHldW2dvb2dsZS5hcGkuSHR0cFJ1bGUuYm9keV0gaXMgIioiLCB0aGVyZSBpcyBubyBVUkwKICBxdWVyeSBwYXJhbWV0ZXIsIGFsbCBmaWVsZHMKICAgICBhcmUgcGFzc2VkIHZpYSBVUkwgcGF0aCBhbmQgSFRUUCByZXF1ZXN0IGJvZHkuCiAgMy4gSWYgW0h0dHBSdWxlLmJvZHldW2dvb2dsZS5hcGkuSHR0cFJ1bGUuYm9keV0gaXMgb21pdHRlZCwgdGhlcmUgaXMgbm8gSFRUUAogIHJlcXVlc3QgYm9keSwgYWxsCiAgICAgZmllbGRzIGFyZSBwYXNzZWQgdmlhIFVSTCBwYXRoIGFuZCBVUkwgcXVlcnkgcGFyYW1ldGVycy4KCiAjIyMgUGF0aCB0ZW1wbGF0ZSBzeW50YXgKCiAgICAgVGVtcGxhdGUgPSAiLyIgU2VnbWVudHMgWyBWZXJiIF0gOwogICAgIFNlZ21lbnRzID0gU2VnbWVudCB7ICIvIiBTZWdtZW50IH0gOwogICAgIFNlZ21lbnQgID0gIioiIHwgIioqIiB8IExJVEVSQUwgfCBWYXJpYWJsZSA7CiAgICAgVmFyaWFibGUgPSAieyIgRmllbGRQYXRoIFsgIj0iIFNlZ21lbnRzIF0gIn0iIDsKICAgICBGaWVsZFBhdGggPSBJREVOVCB7ICIuIiBJREVOVCB9IDsKICAgICBWZXJiICAgICA9ICI6IiBMSVRFUkFMIDsKCiBUaGUgc3ludGF4IGAqYCBtYXRjaGVzIGEgc2luZ2xlIFVSTCBwYXRoIHNlZ21lbnQuIFRoZSBzeW50YXggYCoqYCBtYXRjaGVzCiB6ZXJvIG9yIG1vcmUgVVJMIHBhdGggc2VnbWVudHMsIHdoaWNoIG11c3QgYmUgdGhlIGxhc3QgcGFydCBvZiB0aGUgVVJMIHBhdGgKIGV4Y2VwdCB0aGUgYFZlcmJgLgoKIFRoZSBzeW50YXggYFZhcmlhYmxlYCBtYXRjaGVzIHBhcnQgb2YgdGhlIFVSTCBwYXRoIGFzIHNwZWNpZmllZCBieSBpdHMKIHRlbXBsYXRlLiBBIHZhcmlhYmxlIHRlbXBsYXRlIG11c3Qgbm90IGNvbnRhaW4gb3RoZXIgdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlCiBtYXRjaGVzIGEgc2luZ2xlIHBhdGggc2VnbWVudCwgaXRzIHRlbXBsYXRlIG1heSBiZSBvbWl0dGVkLCBlLmcuIGB7dmFyfWAKIGlzIGVxdWl2YWxlbnQgdG8gYHt2YXI9Kn1gLgoKIFRoZSBzeW50YXggYExJVEVSQUxgIG1hdGNoZXMgbGl0ZXJhbCB0ZXh0IGluIHRoZSBVUkwgcGF0aC4gSWYgdGhlIGBMSVRFUkFMYAogY29udGFpbnMgYW55IHJlc2VydmVkIGNoYXJhY3Rlciwgc3VjaCBjaGFyYWN0ZXJzIHNob3VsZCBiZSBwZXJjZW50LWVuY29kZWQKIGJlZm9yZSB0aGUgbWF0Y2hpbmcuCgogSWYgYSB2YXJpYWJsZSBjb250YWlucyBleGFjdGx5IG9uZSBwYXRoIHNlZ21lbnQsIHN1Y2ggYXMgYCJ7dmFyfSJgIG9yCiBgInt2YXI9Kn0iYCwgd2hlbiBzdWNoIGEgdmFyaWFibGUgaXMgZXhwYW5kZWQgaW50byBhIFVSTCBwYXRoIG9uIHRoZSBjbGllbnQKIHNpZGUsIGFsbCBjaGFyYWN0ZXJzIGV4Y2VwdCBgWy1fLn4wLTlhLXpBLVpdYCBhcmUgcGVyY2VudC1lbmNvZGVkLiBUaGUKIHNlcnZlciBzaWRlIGRvZXMgdGhlIHJldmVyc2UgZGVjb2RpbmcuIFN1Y2ggdmFyaWFibGVzIHNob3cgdXAgaW4gdGhlCiBbRGlzY292ZXJ5CiBEb2N1bWVudF0oaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vZGlzY292ZXJ5L3YxL3JlZmVyZW5jZS9hcGlzKSBhcwogYHt2YXJ9YC4KCiBJZiBhIHZhcmlhYmxlIGNvbnRhaW5zIG11bHRpcGxlIHBhdGggc2VnbWVudHMsIHN1Y2ggYXMgYCJ7dmFyPWZvby8qfSJgCiBvciBgInt2YXI9Kip9ImAsIHdoZW4gc3VjaCBhIHZhcmlhYmxlIGlzIGV4cGFuZGVkIGludG8gYSBVUkwgcGF0aCBvbiB0aGUKIGNsaWVudCBzaWRlLCBhbGwgY2hhcmFjdGVycyBleGNlcHQgYFstXy5+LzAtOWEtekEtWl1gIGFyZSBwZXJjZW50LWVuY29kZWQuCiBUaGUgc2VydmVyIHNpZGUgZG9lcyB0aGUgcmV2ZXJzZSBkZWNvZGluZywgZXhjZXB0ICIlMkYiIGFuZCAiJTJmIiBhcmUgbGVmdAogdW5jaGFuZ2VkLiBTdWNoIHZhcmlhYmxlcyBzaG93IHVwIGluIHRoZQogW0Rpc2NvdmVyeQogRG9jdW1lbnRdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2Rpc2NvdmVyeS92MS9yZWZlcmVuY2UvYXBpcykgYXMKIGB7K3Zhcn1gLgoKICMjIFVzaW5nIGdSUEMgQVBJIFNlcnZpY2UgQ29uZmlndXJhdGlvbgoKIGdSUEMgQVBJIFNlcnZpY2UgQ29uZmlndXJhdGlvbiAoc2VydmljZSBjb25maWcpIGlzIGEgY29uZmlndXJhdGlvbiBsYW5ndWFnZQogZm9yIGNvbmZpZ3VyaW5nIGEgZ1JQQyBzZXJ2aWNlIHRvIGJlY29tZSBhIHVzZXItZmFjaW5nIHByb2R1Y3QuIFRoZQogc2VydmljZSBjb25maWcgaXMgc2ltcGx5IHRoZSBZQU1MIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBgZ29vZ2xlLmFwaS5TZXJ2aWNlYAogcHJvdG8gbWVzc2FnZS4KCiBBcyBhbiBhbHRlcm5hdGl2ZSB0byBhbm5vdGF0aW5nIHlvdXIgcHJvdG8gZmlsZSwgeW91IGNhbiBjb25maWd1cmUgZ1JQQwogdHJhbnNjb2RpbmcgaW4geW91ciBzZXJ2aWNlIGNvbmZpZyBZQU1MIGZpbGVzLiBZb3UgZG8gdGhpcyBieSBzcGVjaWZ5aW5nIGEKIGBIdHRwUnVsZWAgdGhhdCBtYXBzIHRoZSBnUlBDIG1ldGhvZCB0byBhIFJFU1QgZW5kcG9pbnQsIGFjaGlldmluZyB0aGUgc2FtZQogZWZmZWN0IGFzIHRoZSBwcm90byBhbm5vdGF0aW9uLiBUaGlzIGNhbiBiZSBwYXJ0aWN1bGFybHkgdXNlZnVsIGlmIHlvdQogaGF2ZSBhIHByb3RvIHRoYXQgaXMgcmV1c2VkIGluIG11bHRpcGxlIHNlcnZpY2VzLiBOb3RlIHRoYXQgYW55IHRyYW5zY29kaW5nCiBzcGVjaWZpZWQgaW4gdGhlIHNlcnZpY2UgY29uZmlnIHdpbGwgb3ZlcnJpZGUgYW55IG1hdGNoaW5nIHRyYW5zY29kaW5nCiBjb25maWd1cmF0aW9uIGluIHRoZSBwcm90by4KCiBFeGFtcGxlOgoKICAgICBodHRwOgogICAgICAgcnVsZXM6CiAgICAgICAgICMgU2VsZWN0cyBhIGdSUEMgbWV0aG9kIGFuZCBhcHBsaWVzIEh0dHBSdWxlIHRvIGl0LgogICAgICAgICAtIHNlbGVjdG9yOiBleGFtcGxlLnYxLk1lc3NhZ2luZy5HZXRNZXNzYWdlCiAgICAgICAgICAgZ2V0OiAvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9L3tzdWIuc3ViZmllbGR9CgogIyMgU3BlY2lhbCBub3RlcwoKIFdoZW4gZ1JQQyBUcmFuc2NvZGluZyBpcyB1c2VkIHRvIG1hcCBhIGdSUEMgdG8gSlNPTiBSRVNUIGVuZHBvaW50cywgdGhlCiBwcm90byB0byBKU09OIGNvbnZlcnNpb24gbXVzdCBmb2xsb3cgdGhlIFtwcm90bzMKIHNwZWNpZmljYXRpb25dKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90bzMjanNvbikuCgogV2hpbGUgdGhlIHNpbmdsZSBzZWdtZW50IHZhcmlhYmxlIGZvbGxvd3MgdGhlIHNlbWFudGljcyBvZgogW1JGQyA2NTcwXShodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjU3MCkgU2VjdGlvbiAzLjIuMiBTaW1wbGUgU3RyaW5nCiBFeHBhbnNpb24sIHRoZSBtdWx0aSBzZWdtZW50IHZhcmlhYmxlICoqZG9lcyBub3QqKiBmb2xsb3cgUkZDIDY1NzAgU2VjdGlvbgogMy4yLjMgUmVzZXJ2ZWQgRXhwYW5zaW9uLiBUaGUgcmVhc29uIGlzIHRoYXQgdGhlIFJlc2VydmVkIEV4cGFuc2lvbgogZG9lcyBub3QgZXhwYW5kIHNwZWNpYWwgY2hhcmFjdGVycyBsaWtlIGA/YCBhbmQgYCNgLCB3aGljaCB3b3VsZCBsZWFkCiB0byBpbnZhbGlkIFVSTHMuIEFzIHRoZSByZXN1bHQsIGdSUEMgVHJhbnNjb2RpbmcgdXNlcyBhIGN1c3RvbSBlbmNvZGluZwogZm9yIG11bHRpIHNlZ21lbnQgdmFyaWFibGVzLgoKIFRoZSBwYXRoIHZhcmlhYmxlcyAqKm11c3Qgbm90KiogcmVmZXIgdG8gYW55IHJlcGVhdGVkIG9yIG1hcHBlZCBmaWVsZCwKIGJlY2F1c2UgY2xpZW50IGxpYnJhcmllcyBhcmUgbm90IGNhcGFibGUgb2YgaGFuZGxpbmcgc3VjaCB2YXJpYWJsZSBleHBhbnNpb24uCgogVGhlIHBhdGggdmFyaWFibGVzICoqbXVzdCBub3QqKiBjYXB0dXJlIHRoZSBsZWFkaW5nICIvIiBjaGFyYWN0ZXIuIFRoZSByZWFzb24KIGlzIHRoYXQgdGhlIG1vc3QgY29tbW9uIHVzZSBjYXNlICJ7dmFyfSIgZG9lcyBub3QgY2FwdHVyZSB0aGUgbGVhZGluZyAiLyIKIGNoYXJhY3Rlci4gRm9yIGNvbnNpc3RlbmN5LCBhbGwgcGF0aCB2YXJpYWJsZXMgbXVzdCBzaGFyZSB0aGUgc2FtZSBiZWhhdmlvci4KCiBSZXBlYXRlZCBtZXNzYWdlIGZpZWxkcyBtdXN0IG5vdCBiZSBtYXBwZWQgdG8gVVJMIHF1ZXJ5IHBhcmFtZXRlcnMsIGJlY2F1c2UKIG5vIGNsaWVudCBsaWJyYXJ5IGNhbiBzdXBwb3J0IHN1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AhIaJCBUaGUgbmFtZSBvZiB0aGlzIGN1c3RvbSBIVFRQIHZlcmIuCgoPCgUEAgIABBIG9wIC9QIbCg0KBQQCAgAFEgT3AgIICg0KBQQCAgABEgT3AgkNCg0KBQQCAgADEgT3AhARCjUKBAQCAgESBPoCAhIaJyBUaGUgcGF0aCBtYXRjaGVkIGJ5IHRoaXMgY3VzdG9tIHZlcmIuCgoPCgUEAgIBBBIG+gIC9wISCg0KBQQCAgEFEgT6AgIICg0KBQQCAgEBEgT6AgkNCg0KBQQCAgEDEgT6AhARYgZwcm90bzMKy/kCCiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIk0KEUZpbGVEZXNjcmlwdG9yU2V0EjgKBGZpbGUYASADKAsyJC5nb29nbGUucHJvdG9idWYuRmlsZURlc2NyaXB0b3JQcm90b1IEZmlsZSLkBAoTRmlsZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3BhY2thZ2UYAiABKAlSB3BhY2thZ2USHgoKZGVwZW5kZW5jeRgDIAMoCVIKZGVwZW5kZW5jeRIrChFwdWJsaWNfZGVwZW5kZW5jeRgKIAMoBVIQcHVibGljRGVwZW5kZW5jeRInCg93ZWFrX2RlcGVuZGVuY3kYCyADKAVSDndlYWtEZXBlbmRlbmN5EkMKDG1lc3NhZ2VfdHlwZRgEIAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG9SC21lc3NhZ2VUeXBlEkEKCWVudW1fdHlwZRgFIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvUghlbnVtVHlwZRJBCgdzZXJ2aWNlGAYgAygLMicuZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VEZXNjcmlwdG9yUHJvdG9SB3NlcnZpY2USQwoJZXh0ZW5zaW9uGAcgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUglleHRlbnNpb24SNgoHb3B0aW9ucxgIIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9uc1IHb3B0aW9ucxJJChBzb3VyY2VfY29kZV9pbmZvGAkgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvUg5zb3VyY2VDb2RlSW5mbxIWCgZzeW50YXgYDCABKAlSBnN5bnRheCK5BgoPRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSOwoFZmllbGQYAiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SBWZpZWxkEkMKCWV4dGVuc2lvbhgGIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEkEKC25lc3RlZF90eXBlGAMgAygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90b1IKbmVzdGVkVHlwZRJBCgllbnVtX3R5cGUYBCADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSWAoPZXh0ZW5zaW9uX3JhbmdlGAUgAygLMi8uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5FeHRlbnNpb25SYW5nZVIOZXh0ZW5zaW9uUmFuZ2USRAoKb25lb2ZfZGVjbBgIIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5PbmVvZkRlc2NyaXB0b3JQcm90b1IJb25lb2ZEZWNsEjkKB29wdGlvbnMYByABKAsyHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnNSB29wdGlvbnMSVQoOcmVzZXJ2ZWRfcmFuZ2UYCSADKAsyLi5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgKIAMoCVIMcmVzZXJ2ZWROYW1lGnoKDkV4dGVuc2lvblJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZBJACgdvcHRpb25zGAMgASgLMiYuZ29vZ2xlLnByb3RvYnVmLkV4dGVuc2lvblJhbmdlT3B0aW9uc1IHb3B0aW9ucxo3Cg1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCJ8ChVFeHRlbnNpb25SYW5nZU9wdGlvbnMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKYBgoURmllbGREZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIWCgZudW1iZXIYAyABKAVSBm51bWJlchJBCgVsYWJlbBgEIAEoDjIrLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5MYWJlbFIFbGFiZWwSPgoEdHlwZRgFIAEoDjIqLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90by5UeXBlUgR0eXBlEhsKCXR5cGVfbmFtZRgGIAEoCVIIdHlwZU5hbWUSGgoIZXh0ZW5kZWUYAiABKAlSCGV4dGVuZGVlEiMKDWRlZmF1bHRfdmFsdWUYByABKAlSDGRlZmF1bHRWYWx1ZRIfCgtvbmVvZl9pbmRleBgJIAEoBVIKb25lb2ZJbmRleBIbCglqc29uX25hbWUYCiABKAlSCGpzb25OYW1lEjcKB29wdGlvbnMYCCABKAsyHS5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zUgdvcHRpb25zIrYCCgRUeXBlEg8KC1RZUEVfRE9VQkxFEAESDgoKVFlQRV9GTE9BVBACEg4KClRZUEVfSU5UNjQQAxIPCgtUWVBFX1VJTlQ2NBAEEg4KClRZUEVfSU5UMzIQBRIQCgxUWVBFX0ZJWEVENjQQBhIQCgxUWVBFX0ZJWEVEMzIQBxINCglUWVBFX0JPT0wQCBIPCgtUWVBFX1NUUklORxAJEg4KClRZUEVfR1JPVVAQChIQCgxUWVBFX01FU1NBR0UQCxIOCgpUWVBFX0JZVEVTEAwSDwoLVFlQRV9VSU5UMzIQDRINCglUWVBFX0VOVU0QDhIRCg1UWVBFX1NGSVhFRDMyEA8SEQoNVFlQRV9TRklYRUQ2NBAQEg8KC1RZUEVfU0lOVDMyEBESDwoLVFlQRV9TSU5UNjQQEiJDCgVMYWJlbBISCg5MQUJFTF9PUFRJT05BTBABEhIKDkxBQkVMX1JFUVVJUkVEEAISEgoOTEFCRUxfUkVQRUFURUQQAyJjChRPbmVvZkRlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjcKB29wdGlvbnMYAiABKAsyHS5nb29nbGUucHJvdG9idWYuT25lb2ZPcHRpb25zUgdvcHRpb25zIuMCChNFbnVtRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPwoFdmFsdWUYAiADKAsyKS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlRGVzY3JpcHRvclByb3RvUgV2YWx1ZRI2CgdvcHRpb25zGAMgASgLMhwuZ29vZ2xlLnByb3RvYnVmLkVudW1PcHRpb25zUgdvcHRpb25zEl0KDnJlc2VydmVkX3JhbmdlGAQgAygLMjYuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG8uRW51bVJlc2VydmVkUmFuZ2VSDXJlc2VydmVkUmFuZ2USIwoNcmVzZXJ2ZWRfbmFtZRgFIAMoCVIMcmVzZXJ2ZWROYW1lGjsKEUVudW1SZXNlcnZlZFJhbmdlEhQKBXN0YXJ0GAEgASgFUgVzdGFydBIQCgNlbmQYAiABKAVSA2VuZCKDAQoYRW51bVZhbHVlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAIgASgFUgZudW1iZXISOwoHb3B0aW9ucxgDIAEoCzIhLmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zUgdvcHRpb25zIqcBChZTZXJ2aWNlRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSPgoGbWV0aG9kGAIgAygLMiYuZ29vZ2xlLnByb3RvYnVmLk1ldGhvZERlc2NyaXB0b3JQcm90b1IGbWV0aG9kEjkKB29wdGlvbnMYAyABKAsyHy5nb29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnNSB29wdGlvbnMiiQIKFU1ldGhvZERlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEh0KCmlucHV0X3R5cGUYAiABKAlSCWlucHV0VHlwZRIfCgtvdXRwdXRfdHlwZRgDIAEoCVIKb3V0cHV0VHlwZRI4CgdvcHRpb25zGAQgASgLMh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnNSB29wdGlvbnMSMAoQY2xpZW50X3N0cmVhbWluZxgFIAEoCDoFZmFsc2VSD2NsaWVudFN0cmVhbWluZxIwChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVmYWxzZVIPc2VydmVyU3RyZWFtaW5nIpIJCgtGaWxlT3B0aW9ucxIhCgxqYXZhX3BhY2thZ2UYASABKAlSC2phdmFQYWNrYWdlEjAKFGphdmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJUhJqYXZhT3V0ZXJDbGFzc25hbWUSNQoTamF2YV9tdWx0aXBsZV9maWxlcxgKIAEoCDoFZmFsc2VSEWphdmFNdWx0aXBsZUZpbGVzEkQKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2FuZF9oYXNoGBQgASgIQgIYAVIZamF2YUdlbmVyYXRlRXF1YWxzQW5kSGFzaBI6ChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsgASgIOgVmYWxzZVITamF2YVN0cmluZ0NoZWNrVXRmOBJTCgxvcHRpbWl6ZV9mb3IYCSABKA4yKS5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMuT3B0aW1pemVNb2RlOgVTUEVFRFILb3B0aW1pemVGb3ISHQoKZ29fcGFja2FnZRgLIAEoCVIJZ29QYWNrYWdlEjUKE2NjX2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZhbHNlUhFjY0dlbmVyaWNTZXJ2aWNlcxI5ChVqYXZhX2dlbmVyaWNfc2VydmljZXMYESABKAg6BWZhbHNlUhNqYXZhR2VuZXJpY1NlcnZpY2VzEjUKE3B5X2dlbmVyaWNfc2VydmljZXMYEiABKAg6BWZhbHNlUhFweUdlbmVyaWNTZXJ2aWNlcxI3ChRwaHBfZ2VuZXJpY19zZXJ2aWNlcxgqIAEoCDoFZmFsc2VSEnBocEdlbmVyaWNTZXJ2aWNlcxIlCgpkZXByZWNhdGVkGBcgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIvChBjY19lbmFibGVfYXJlbmFzGB8gASgIOgVmYWxzZVIOY2NFbmFibGVBcmVuYXMSKgoRb2JqY19jbGFzc19wcmVmaXgYJCABKAlSD29iamNDbGFzc1ByZWZpeBIpChBjc2hhcnBfbmFtZXNwYWNlGCUgASgJUg9jc2hhcnBOYW1lc3BhY2USIQoMc3dpZnRfcHJlZml4GCcgASgJUgtzd2lmdFByZWZpeBIoChBwaHBfY2xhc3NfcHJlZml4GCggASgJUg5waHBDbGFzc1ByZWZpeBIjCg1waHBfbmFtZXNwYWNlGCkgASgJUgxwaHBOYW1lc3BhY2USNAoWcGhwX21ldGFkYXRhX25hbWVzcGFjZRgsIAEoCVIUcGhwTWV0YWRhdGFOYW1lc3BhY2USIQoMcnVieV9wYWNrYWdlGC0gASgJUgtydWJ5UGFja2FnZRJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiI6CgxPcHRpbWl6ZU1vZGUSCQoFU1BFRUQQARINCglDT0RFX1NJWkUQAhIQCgxMSVRFX1JVTlRJTUUQAyoJCOgHEICAgIACSgQIJhAnItECCg5NZXNzYWdlT3B0aW9ucxI8ChdtZXNzYWdlX3NldF93aXJlX2Zvcm1hdBgBIAEoCDoFZmFsc2VSFG1lc3NhZ2VTZXRXaXJlRm9ybWF0EkwKH25vX3N0YW5kYXJkX2Rlc2NyaXB0b3JfYWNjZXNzb3IYAiABKAg6BWZhbHNlUhxub1N0YW5kYXJkRGVzY3JpcHRvckFjY2Vzc29yEiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhsKCW1hcF9lbnRyeRgHIAEoCFIIbWFwRW50cnkSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAgQCUoECAkQCiLiAwoMRmllbGRPcHRpb25zEkEKBWN0eXBlGAEgASgOMiMuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5DVHlwZToGU1RSSU5HUgVjdHlwZRIWCgZwYWNrZWQYAiABKAhSBnBhY2tlZBJHCgZqc3R5cGUYBiABKA4yJC5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkpTVHlwZToJSlNfTk9STUFMUgZqc3R5cGUSGQoEbGF6eRgFIAEoCDoFZmFsc2VSBGxhenkSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSGQoEd2VhaxgKIAEoCDoFZmFsc2VSBHdlYWsSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iLwoFQ1R5cGUSCgoGU1RSSU5HEAASCAoEQ09SRBABEhAKDFNUUklOR19QSUVDRRACIjUKBkpTVHlwZRINCglKU19OT1JNQUwQABINCglKU19TVFJJTkcQARINCglKU19OVU1CRVIQAioJCOgHEICAgIACSgQIBBAFInMKDE9uZW9mT3B0aW9ucxJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIsABCgtFbnVtT3B0aW9ucxIfCgthbGxvd19hbGlhcxgCIAEoCFIKYWxsb3dBbGlhcxIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACSgQIBRAGIp4BChBFbnVtVmFsdWVPcHRpb25zEiUKCmRlcHJlY2F0ZWQYASABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIinAEKDlNlcnZpY2VPcHRpb25zEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIi4AIKDU1ldGhvZE9wdGlvbnMSJQoKZGVwcmVjYXRlZBghIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQScQoRaWRlbXBvdGVuY3lfbGV2ZWwYIiABKA4yLy5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucy5JZGVtcG90ZW5jeUxldmVsOhNJREVNUE9URU5DWV9VTktOT1dOUhBpZGVtcG90ZW5jeUxldmVsElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIlAKEElkZW1wb3RlbmN5TGV2ZWwSFwoTSURFTVBPVEVOQ1lfVU5LTk9XThAAEhMKD05PX1NJREVfRUZGRUNUUxABEg4KCklERU1QT1RFTlQQAioJCOgHEICAgIACIpoDChNVbmludGVycHJldGVkT3B0aW9uEkEKBG5hbWUYAiADKAsyLS5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbi5OYW1lUGFydFIEbmFtZRIpChBpZGVudGlmaWVyX3ZhbHVlGAMgASgJUg9pZGVudGlmaWVyVmFsdWUSLAoScG9zaXRpdmVfaW50X3ZhbHVlGAQgASgEUhBwb3NpdGl2ZUludFZhbHVlEiwKEm5lZ2F0aXZlX2ludF92YWx1ZRgFIAEoA1IQbmVnYXRpdmVJbnRWYWx1ZRIhCgxkb3VibGVfdmFsdWUYBiABKAFSC2RvdWJsZVZhbHVlEiEKDHN0cmluZ192YWx1ZRgHIAEoDFILc3RyaW5nVmFsdWUSJwoPYWdncmVnYXRlX3ZhbHVlGAggASgJUg5hZ2dyZWdhdGVWYWx1ZRpKCghOYW1lUGFydBIbCgluYW1lX3BhcnQYASACKAlSCG5hbWVQYXJ0EiEKDGlzX2V4dGVuc2lvbhgCIAIoCFILaXNFeHRlbnNpb24ipwIKDlNvdXJjZUNvZGVJbmZvEkQKCGxvY2F0aW9uGAEgAygLMiguZ29vZ2xlLnByb3RvYnVmLlNvdXJjZUNvZGVJbmZvLkxvY2F0aW9uUghsb2NhdGlvbhrOAQoITG9jYXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSFgoEc3BhbhgCIAMoBUICEAFSBHNwYW4SKQoQbGVhZGluZ19jb21tZW50cxgDIAEoCVIPbGVhZGluZ0NvbW1lbnRzEisKEXRyYWlsaW5nX2NvbW1lbnRzGAQgASgJUhB0cmFpbGluZ0NvbW1lbnRzEjoKGWxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMYBiADKAlSF2xlYWRpbmdEZXRhY2hlZENvbW1lbnRzItEBChFHZW5lcmF0ZWRDb2RlSW5mbxJNCgphbm5vdGF0aW9uGAEgAygLMi0uZ29vZ2xlLnByb3RvYnVmLkdlbmVyYXRlZENvZGVJbmZvLkFubm90YXRpb25SCmFubm90YXRpb24abQoKQW5ub3RhdGlvbhIWCgRwYXRoGAEgAygFQgIQAVIEcGF0aBIfCgtzb3VyY2VfZmlsZRgCIAEoCVIKc291cmNlRmlsZRIUCgViZWdpbhgDIAEoBVIFYmVnaW4SEAoDZW5kGAQgASgFUgNlbmRCjwEKE2NvbS5nb29nbGUucHJvdG9idWZCEERlc2NyaXB0b3JQcm90b3NIAVo+Z2l0aHViLmNvbS9nb2xhbmcvcHJvdG9idWYvcHJvdG9jLWdlbi1nby9kZXNjcmlwdG9yO2Rlc2NyaXB0b3L4AQGiAgNHUEKqAhpHb29nbGUuUHJvdG9idWYuUmVmbGVjdGlvbkqsvgIKBxIFJwDyBgEKqg8KAQwSAycAEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KMtsCIEF1dGhvcjoga2VudG9uQGdvb2dsZS5jb20gKEtlbnRvbiBWYXJkYSkKICBCYXNlZCBvbiBvcmlnaW5hbCBQcm90b2NvbCBCdWZmZXJzIGRlc2lnbiBieQogIFNhbmpheSBHaGVtYXdhdCwgSmVmZiBEZWFuLCBhbmQgb3RoZXJzLgoKIFRoZSBtZXNzYWdlcyBpbiB0aGlzIGZpbGUgZGVzY3JpYmUgdGhlIGRlZmluaXRpb25zIGZvdW5kIGluIC5wcm90byBmaWxlcy4KIEEgdmFsaWQgLnByb3RvIGZpbGUgY2FuIGJlIHRyYW5zbGF0ZWQgZGlyZWN0bHkgdG8gYSBGaWxlRGVzY3JpcHRvclByb3RvCiB3aXRob3V0IGFueSBvdGhlciBpbmZvcm1hdGlvbiAoZS5nLiB3aXRob3V0IHJlYWRpbmcgaXRzIGltcG9ydHMpLgoKCAoBAhIDKQAYCggKAQgSAyoAVQoJCgIICxIDKgBVCggKAQgSAysALAoJCgIIARIDKwAsCggKAQgSAywAMQoJCgIICBIDLAAxCggKAQgSAy0ANwoJCgIIJRIDLQA3CggKAQgSAy4AIQoJCgIIJBIDLgAhCggKAQgSAy8AHwoJCgIIHxIDLwAfCggKAQgSAzMAHAp/CgIICRIDMwAcGnQgZGVzY3JpcHRvci5wcm90byBtdXN0IGJlIG9wdGltaXplZCBmb3Igc3BlZWQgYmVjYXVzZSByZWZsZWN0aW9uLWJhc2VkCiBhbGdvcml0aG1zIGRvbid0IHdvcmsgZHVyaW5nIGJvb3RzdHJhcHBpbmcuCgpqCgIEABIENwA5ARpeIFRoZSBwcm90b2NvbCBjb21waWxlciBjYW4gb3V0cHV0IGEgRmlsZURlc2NyaXB0b3JTZXQgY29udGFpbmluZyB0aGUgLnByb3RvCiBmaWxlcyBpdCBwYXJzZXMuCgoKCgMEAAESAzcIGQoLCgQEAAIAEgM4AigKDAoFBAACAAQSAzgCCgoMCgUEAAIABhIDOAseCgwKBQQAAgABEgM4HyMKDAoFBAACAAMSAzgmJwovCgIEARIEPABZARojIERlc2NyaWJlcyBhIGNvbXBsZXRlIC5wcm90byBmaWxlLgoKCgoDBAEBEgM8CBsKOQoEBAECABIDPQIbIiwgZmlsZSBuYW1lLCByZWxhdGl2ZSB0byByb290IG9mIHNvdXJjZSB0cmVlCgoMCgUEAQIABBIDPQIKCgwKBQQBAgAFEgM9CxEKDAoFBAECAAESAz0SFgoMCgUEAQIAAxIDPRkaCioKBAQBAgESAz4CHiIdIGUuZy4gImZvbyIsICJmb28uYmFyIiwgZXRjLgoKDAoFBAECAQQSAz4CCgoMCgUEAQIBBRIDPgsRCgwKBQQBAgEBEgM+EhkKDAoFBAECAQMSAz4cHQo0CgQEAQICEgNBAiEaJyBOYW1lcyBvZiBmaWxlcyBpbXBvcnRlZCBieSB0aGlzIGZpbGUuCgoMCgUEAQICBBIDQQIKCgwKBQQBAgIFEgNBCxEKDAoFBAECAgESA0ESHAoMCgUEAQICAxIDQR8gClEKBAQBAgMSA0MCKBpEIEluZGV4ZXMgb2YgdGhlIHB1YmxpYyBpbXBvcnRlZCBmaWxlcyBpbiB0aGUgZGVwZW5kZW5jeSBsaXN0IGFib3ZlLgoKDAoFBAECAwQSA0MCCgoMCgUEAQIDBRIDQwsQCgwKBQQBAgMBEgNDESIKDAoFBAECAwMSA0MlJwp6CgQEAQIEEgNGAiYabSBJbmRleGVzIG9mIHRoZSB3ZWFrIGltcG9ydGVkIGZpbGVzIGluIHRoZSBkZXBlbmRlbmN5IGxpc3QuCiBGb3IgR29vZ2xlLWludGVybmFsIG1pZ3JhdGlvbiBvbmx5LiBEbyBub3QgdXNlLgoKDAoFBAECBAQSA0YCCgoMCgUEAQIEBRIDRgsQCgwKBQQBAgQBEgNGESAKDAoFBAECBAMSA0YjJQo2CgQEAQIFEgNJAiwaKSBBbGwgdG9wLWxldmVsIGRlZmluaXRpb25zIGluIHRoaXMgZmlsZS4KCgwKBQQBAgUEEgNJAgoKDAoFBAECBQYSA0kLGgoMCgUEAQIFARIDSRsnCgwKBQQBAgUDEgNJKisKCwoEBAECBhIDSgItCgwKBQQBAgYEEgNKAgoKDAoFBAECBgYSA0oLHgoMCgUEAQIGARIDSh8oCgwKBQQBAgYDEgNKKywKCwoEBAECBxIDSwIuCgwKBQQBAgcEEgNLAgoKDAoFBAECBwYSA0sLIQoMCgUEAQIHARIDSyIpCgwKBQQBAgcDEgNLLC0KCwoEBAECCBIDTAIuCgwKBQQBAggEEgNMAgoKDAoFBAECCAYSA0wLHwoMCgUEAQIIARIDTCApCgwKBQQBAggDEgNMLC0KCwoEBAECCRIDTgIjCgwKBQQBAgkEEgNOAgoKDAoFBAECCQYSA04LFgoMCgUEAQIJARIDThceCgwKBQQBAgkDEgNOISIK9AEKBAQBAgoSA1QCLxrmASBUaGlzIGZpZWxkIGNvbnRhaW5zIG9wdGlvbmFsIGluZm9ybWF0aW9uIGFib3V0IHRoZSBvcmlnaW5hbCBzb3VyY2UgY29kZS4KIFlvdSBtYXkgc2FmZWx5IHJlbW92ZSB0aGlzIGVudGlyZSBmaWVsZCB3aXRob3V0IGhhcm1pbmcgcnVudGltZQogZnVuY3Rpb25hbGl0eSBvZiB0aGUgZGVzY3JpcHRvcnMgLS0gdGhlIGluZm9ybWF0aW9uIGlzIG5lZWRlZCBvbmx5IGJ5CiBkZXZlbG9wbWVudCB0b29scy4KCgwKBQQBAgoEEgNUAgoKDAoFBAECCgYSA1QLGQoMCgUEAQIKARIDVBoqCgwKBQQBAgoDEgNULS4KXQoEBAECCxIDWAIeGlAgVGhlIHN5bnRheCBvZiB0aGUgcHJvdG8gZmlsZS4KIFRoZSBzdXBwb3J0ZWQgdmFsdWVzIGFyZSAicHJvdG8yIiBhbmQgInByb3RvMyIuCgoMCgUEAQILBBIDWAIKCgwKBQQBAgsFEgNYCxEKDAoFBAECCwESA1gSGAoMCgUEAQILAxIDWBsdCicKAgQCEgRcAHwBGhsgRGVzY3JpYmVzIGEgbWVzc2FnZSB0eXBlLgoKCgoDBAIBEgNcCBcKCwoEBAICABIDXQIbCgwKBQQCAgAEEgNdAgoKDAoFBAICAAUSA10LEQoMCgUEAgIAARIDXRIWCgwKBQQCAgADEgNdGRoKCwoEBAICARIDXwIqCgwKBQQCAgEEEgNfAgoKDAoFBAICAQYSA18LHwoMCgUEAgIBARIDXyAlCgwKBQQCAgEDEgNfKCkKCwoEBAICAhIDYAIuCgwKBQQCAgIEEgNgAgoKDAoFBAICAgYSA2ALHwoMCgUEAgICARIDYCApCgwKBQQCAgIDEgNgLC0KCwoEBAICAxIDYgIrCgwKBQQCAgMEEgNiAgoKDAoFBAICAwYSA2ILGgoMCgUEAgIDARIDYhsmCgwKBQQCAgMDEgNiKSoKCwoEBAICBBIDYwItCgwKBQQCAgQEEgNjAgoKDAoFBAICBAYSA2MLHgoMCgUEAgIEARIDYx8oCgwKBQQCAgQDEgNjKywKDAoEBAIDABIEZQJqAwoMCgUEAgMAARIDZQoYCg0KBgQCAwACABIDZgQdCg4KBwQCAwACAAQSA2YEDAoOCgcEAgMAAgAFEgNmDRIKDgoHBAIDAAIAARIDZhMYCg4KBwQCAwACAAMSA2YbHAoNCgYEAgMAAgESA2cEGwoOCgcEAgMAAgEEEgNnBAwKDgoHBAIDAAIBBRIDZw0SCg4KBwQCAwACAQESA2cTFgoOCgcEAgMAAgEDEgNnGRoKDQoGBAIDAAICEgNpBC8KDgoHBAIDAAICBBIDaQQMCg4KBwQCAwACAgYSA2kNIgoOCgcEAgMAAgIBEgNpIyoKDgoHBAIDAAICAxIDaS0uCgsKBAQCAgUSA2sCLgoMCgUEAgIFBBIDawIKCgwKBQQCAgUGEgNrCxkKDAoFBAICBQESA2saKQoMCgUEAgIFAxIDaywtCgsKBAQCAgYSA20CLwoMCgUEAgIGBBIDbQIKCgwKBQQCAgYGEgNtCx8KDAoFBAICBgESA20gKgoMCgUEAgIGAxIDbS0uCgsKBAQCAgcSA28CJgoMCgUEAgIHBBIDbwIKCgwKBQQCAgcGEgNvCxkKDAoFBAICBwESA28aIQoMCgUEAgIHAxIDbyQlCqoBCgQEAgMBEgR0AncDGpsBIFJhbmdlIG9mIHJlc2VydmVkIHRhZyBudW1iZXJzLiBSZXNlcnZlZCB0YWcgbnVtYmVycyBtYXkgbm90IGJlIHVzZWQgYnkKIGZpZWxkcyBvciBleHRlbnNpb24gcmFuZ2VzIGluIHRoZSBzYW1lIG1lc3NhZ2UuIFJlc2VydmVkIHJhbmdlcyBtYXkKIG5vdCBvdmVybGFwLgoKDAoFBAIDAQESA3QKFwobCgYEAgMBAgASA3UEHSIMIEluY2x1c2l2ZS4KCg4KBwQCAwECAAQSA3UEDAoOCgcEAgMBAgAFEgN1DRIKDgoHBAIDAQIAARIDdRMYCg4KBwQCAwECAAMSA3UbHAobCgYEAgMBAgESA3YEGyIMIEV4Y2x1c2l2ZS4KCg4KBwQCAwECAQQSA3YEDAoOCgcEAgMBAgEFEgN2DRIKDgoHBAIDAQIBARIDdhMWCg4KBwQCAwECAQMSA3YZGgoLCgQEAgIIEgN4AiwKDAoFBAICCAQSA3gCCgoMCgUEAgIIBhIDeAsYCgwKBQQCAggBEgN4GScKDAoFBAICCAMSA3gqKwqCAQoEBAICCRIDewIlGnUgUmVzZXJ2ZWQgZmllbGQgbmFtZXMsIHdoaWNoIG1heSBub3QgYmUgdXNlZCBieSBmaWVsZHMgaW4gdGhlIHNhbWUgbWVzc2FnZS4KIEEgZ2l2ZW4gbmFtZSBtYXkgb25seSBiZSByZXNlcnZlZCBvbmNlLgoKDAoFBAICCQQSA3sCCgoMCgUEAgIJBRIDewsRCgwKBQQCAgkBEgN7Eh8KDAoFBAICCQMSA3siJAoLCgIEAxIFfgCEAQEKCgoDBAMBEgN+CB0KTwoEBAMCABIEgAECOhpBIFRoZSBwYXJzZXIgc3RvcmVzIG9wdGlvbnMgaXQgZG9lc24ndCByZWNvZ25pemUgaGVyZS4gU2VlIGFib3ZlLgoKDQoFBAMCAAQSBIABAgoKDQoFBAMCAAYSBIABCx4KDQoFBAMCAAESBIABHzMKDQoFBAMCAAMSBIABNjkKWgoDBAMFEgSDAQIZGk0gQ2xpZW50cyBjYW4gZGVmaW5lIGN1c3RvbSBvcHRpb25zIGluIGV4dGVuc2lvbnMgb2YgdGhpcyBtZXNzYWdlLiBTZWUgYWJvdmUuCgoMCgQEAwUAEgSDAQ0YCg0KBQQDBQABEgSDAQ0RCg0KBQQDBQACEgSDARUYCjMKAgQEEgaHAQDVAQEaJSBEZXNjcmliZXMgYSBmaWVsZCB3aXRoaW4gYSBtZXNzYWdlLgoKCwoDBAQBEgSHAQgcCg4KBAQEBAASBogBAqcBAwoNCgUEBAQAARIEiAEHCwpTCgYEBAQAAgASBIsBBBwaQyAwIGlzIHJlc2VydmVkIGZvciBlcnJvcnMuCiBPcmRlciBpcyB3ZWlyZCBmb3IgaGlzdG9yaWNhbCByZWFzb25zLgoKDwoHBAQEAAIAARIEiwEEDwoPCgcEBAQAAgACEgSLARobCg4KBgQEBAACARIEjAEEHAoPCgcEBAQAAgEBEgSMAQQOCg8KBwQEBAACAQISBIwBGhsKdwoGBAQEAAICEgSPAQQcGmcgTm90IFppZ1phZyBlbmNvZGVkLiAgTmVnYXRpdmUgbnVtYmVycyB0YWtlIDEwIGJ5dGVzLiAgVXNlIFRZUEVfU0lOVDY0IGlmCiBuZWdhdGl2ZSB2YWx1ZXMgYXJlIGxpa2VseS4KCg8KBwQEBAACAgESBI8BBA4KDwoHBAQEAAICAhIEjwEaGwoOCgYEBAQAAgMSBJABBBwKDwoHBAQEAAIDARIEkAEEDwoPCgcEBAQAAgMCEgSQARobCncKBgQEBAACBBIEkwEEHBpnIE5vdCBaaWdaYWcgZW5jb2RlZC4gIE5lZ2F0aXZlIG51bWJlcnMgdGFrZSAxMCBieXRlcy4gIFVzZSBUWVBFX1NJTlQzMiBpZgogbmVnYXRpdmUgdmFsdWVzIGFyZSBsaWtlbHkuCgoPCgcEBAQAAgQBEgSTAQQOCg8KBwQEBAACBAISBJMBGhsKDgoGBAQEAAIFEgSUAQQcCg8KBwQEBAACBQESBJQBBBAKDwoHBAQEAAIFAhIElAEaGwoOCgYEBAQAAgYSBJUBBBwKDwoHBAQEAAIGARIElQEEEAoPCgcEBAQAAgYCEgSVARobCg4KBgQEBAACBxIElgEEHAoPCgcEBAQAAgcBEgSWAQQNCg8KBwQEBAACBwISBJYBGhsKDgoGBAQEAAIIEgSXAQQcCg8KBwQEBAACCAESBJcBBA8KDwoHBAQEAAIIAhIElwEaGwriAQoGBAQEAAIJEgScAQQdGtEBIFRhZy1kZWxpbWl0ZWQgYWdncmVnYXRlLgogR3JvdXAgdHlwZSBpcyBkZXByZWNhdGVkIGFuZCBub3Qgc3VwcG9ydGVkIGluIHByb3RvMy4gSG93ZXZlciwgUHJvdG8zCiBpbXBsZW1lbnRhdGlvbnMgc2hvdWxkIHN0aWxsIGJlIGFibGUgdG8gcGFyc2UgdGhlIGdyb3VwIHdpcmUgZm9ybWF0IGFuZAogdHJlYXQgZ3JvdXAgZmllbGRzIGFzIHVua25vd24gZmllbGRzLgoKDwoHBAQEAAIJARIEnAEEDgoPCgcEBAQAAgkCEgScARocCi0KBgQEBAACChIEnQEEHSIdIExlbmd0aC1kZWxpbWl0ZWQgYWdncmVnYXRlLgoKDwoHBAQEAAIKARIEnQEEEAoPCgcEBAQAAgoCEgSdARocCiMKBgQEBAACCxIEoAEEHRoTIE5ldyBpbiB2ZXJzaW9uIDIuCgoPCgcEBAQAAgsBEgSgAQQOCg8KBwQEBAACCwISBKABGhwKDgoGBAQEAAIMEgShAQQdCg8KBwQEBAACDAESBKEBBA8KDwoHBAQEAAIMAhIEoQEaHAoOCgYEBAQAAg0SBKIBBB0KDwoHBAQEAAINARIEogEEDQoPCgcEBAQAAg0CEgSiARocCg4KBgQEBAACDhIEowEEHQoPCgcEBAQAAg4BEgSjAQQRCg8KBwQEBAACDgISBKMBGhwKDgoGBAQEAAIPEgSkAQQdCg8KBwQEBAACDwESBKQBBBEKDwoHBAQEAAIPAhIEpAEaHAonCgYEBAQAAhASBKUBBB0iFyBVc2VzIFppZ1phZyBlbmNvZGluZy4KCg8KBwQEBAACEAESBKUBBA8KDwoHBAQEAAIQAhIEpQEaHAonCgYEBAQAAhESBKYBBB0iFyBVc2VzIFppZ1phZyBlbmNvZGluZy4KCg8KBwQEBAACEQESBKYBBA8KDwoHBAQEAAIRAhIEpgEaHAoOCgQEBAQBEgapAQKuAQMKDQoFBAQEAQESBKkBBwwKKgoGBAQEAQIAEgSrAQQcGhogMCBpcyByZXNlcnZlZCBmb3IgZXJyb3JzCgoPCgcEBAQBAgABEgSrAQQSCg8KBwQEBAECAAISBKsBGhsKDgoGBAQEAQIBEgSsAQQcCg8KBwQEBAECAQESBKwBBBIKDwoHBAQEAQIBAhIErAEaGwoOCgYEBAQBAgISBK0BBBwKDwoHBAQEAQICARIErQEEEgoPCgcEBAQBAgICEgStARobCgwKBAQEAgASBLABAhsKDQoFBAQCAAQSBLABAgoKDQoFBAQCAAUSBLABCxEKDQoFBAQCAAESBLABEhYKDQoFBAQCAAMSBLABGRoKDAoEBAQCARIEsQECHAoNCgUEBAIBBBIEsQECCgoNCgUEBAIBBRIEsQELEAoNCgUEBAIBARIEsQERFwoNCgUEBAIBAxIEsQEaGwoMCgQEBAICEgSyAQIbCg0KBQQEAgIEEgSyAQIKCg0KBQQEAgIGEgSyAQsQCg0KBQQEAgIBEgSyAREWCg0KBQQEAgIDEgSyARkaCpwBCgQEBAIDEgS2AQIZGo0BIElmIHR5cGVfbmFtZSBpcyBzZXQsIHRoaXMgbmVlZCBub3QgYmUgc2V0LiAgSWYgYm90aCB0aGlzIGFuZCB0eXBlX25hbWUKIGFyZSBzZXQsIHRoaXMgbXVzdCBiZSBvbmUgb2YgVFlQRV9FTlVNLCBUWVBFX01FU1NBR0Ugb3IgVFlQRV9HUk9VUC4KCg0KBQQEAgMEEgS2AQIKCg0KBQQEAgMGEgS2AQsPCg0KBQQEAgMBEgS2ARAUCg0KBQQEAgMDEgS2ARcYCrcCCgQEBAIEEgS9AQIgGqgCIEZvciBtZXNzYWdlIGFuZCBlbnVtIHR5cGVzLCB0aGlzIGlzIHRoZSBuYW1lIG9mIHRoZSB0eXBlLiAgSWYgdGhlIG5hbWUKIHN0YXJ0cyB3aXRoIGEgJy4nLCBpdCBpcyBmdWxseS1xdWFsaWZpZWQuICBPdGhlcndpc2UsIEMrKy1saWtlIHNjb3BpbmcKIHJ1bGVzIGFyZSB1c2VkIHRvIGZpbmQgdGhlIHR5cGUgKGkuZS4gZmlyc3QgdGhlIG5lc3RlZCB0eXBlcyB3aXRoaW4gdGhpcwogbWVzc2FnZSBhcmUgc2VhcmNoZWQsIHRoZW4gd2l0aGluIHRoZSBwYXJlbnQsIG9uIHVwIHRvIHRoZSByb290CiBuYW1lc3BhY2UpLgoKDQoFBAQCBAQSBL0BAgoKDQoFBAQCBAUSBL0BCxEKDQoFBAQCBAESBL0BEhsKDQoFBAQCBAMSBL0BHh8KfgoEBAQCBRIEwQECHxpwIEZvciBleHRlbnNpb25zLCB0aGlzIGlzIHRoZSBuYW1lIG9mIHRoZSB0eXBlIGJlaW5nIGV4dGVuZGVkLiAgSXQgaXMKIHJlc29sdmVkIGluIHRoZSBzYW1lIG1hbm5lciBhcyB0eXBlX25hbWUuCgoNCgUEBAIFBBIEwQECCgoNCgUEBAIFBRIEwQELEQoNCgUEBAIFARIEwQESGgoNCgUEBAIFAxIEwQEdHgqxAgoEBAQCBhIEyAECJBqiAiBGb3IgbnVtZXJpYyB0eXBlcywgY29udGFpbnMgdGhlIG9yaWdpbmFsIHRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIHZhbHVlLgogRm9yIGJvb2xlYW5zLCAidHJ1ZSIgb3IgImZhbHNlIi4KIEZvciBzdHJpbmdzLCBjb250YWlucyB0aGUgZGVmYXVsdCB0ZXh0IGNvbnRlbnRzIChub3QgZXNjYXBlZCBpbiBhbnkgd2F5KS4KIEZvciBieXRlcywgY29udGFpbnMgdGhlIEMgZXNjYXBlZCB2YWx1ZS4gIEFsbCBieXRlcyA+PSAxMjggYXJlIGVzY2FwZWQuCiBUT0RPKGtlbnRvbik6ICBCYXNlLTY0IGVuY29kZT8KCg0KBQQEAgYEEgTIAQIKCg0KBQQEAgYFEgTIAQsRCg0KBQQEAgYBEgTIARIfCg0KBQQEAgYDEgTIASIjCoQBCgQEBAIHEgTMAQIhGnYgSWYgc2V0LCBnaXZlcyB0aGUgaW5kZXggb2YgYSBvbmVvZiBpbiB0aGUgY29udGFpbmluZyB0eXBlJ3Mgb25lb2ZfZGVjbAogbGlzdC4gIFRoaXMgZmllbGQgaXMgYSBtZW1iZXIgb2YgdGhhdCBvbmVvZi4KCg0KBQQEAgcEEgTMAQIKCg0KBQQEAgcFEgTMAQsQCg0KBQQEAgcBEgTMAREcCg0KBQQEAgcDEgTMAR8gCvoBCgQEBAIIEgTSAQIhGusBIEpTT04gbmFtZSBvZiB0aGlzIGZpZWxkLiBUaGUgdmFsdWUgaXMgc2V0IGJ5IHByb3RvY29sIGNvbXBpbGVyLiBJZiB0aGUKIHVzZXIgaGFzIHNldCBhICJqc29uX25hbWUiIG9wdGlvbiBvbiB0aGlzIGZpZWxkLCB0aGF0IG9wdGlvbidzIHZhbHVlCiB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgaXQncyBkZWR1Y2VkIGZyb20gdGhlIGZpZWxkJ3MgbmFtZSBieSBjb252ZXJ0aW5nCiBpdCB0byBjYW1lbENhc2UuCgoNCgUEBAIIBBIE0gECCgoNCgUEBAIIBRIE0gELEQoNCgUEBAIIARIE0gESGwoNCgUEBAIIAxIE0gEeIAoMCgQEBAIJEgTUAQIkCg0KBQQEAgkEEgTUAQIKCg0KBQQEAgkGEgTUAQsXCg0KBQQEAgkBEgTUARgfCg0KBQQEAgkDEgTUASIjCiIKAgQFEgbYAQDbAQEaFCBEZXNjcmliZXMgYSBvbmVvZi4KCgsKAwQFARIE2AEIHAoMCgQEBQIAEgTZAQIbCg0KBQQFAgAEEgTZAQIKCg0KBQQFAgAFEgTZAQsRCg0KBQQFAgABEgTZARIWCg0KBQQFAgADEgTZARkaCgwKBAQFAgESBNoBAiQKDQoFBAUCAQQSBNoBAgoKDQoFBAUCAQYSBNoBCxcKDQoFBAUCAQESBNoBGB8KDQoFBAUCAQMSBNoBIiMKJwoCBAYSBt4BAPgBARoZIERlc2NyaWJlcyBhbiBlbnVtIHR5cGUuCgoLCgMEBgESBN4BCBsKDAoEBAYCABIE3wECGwoNCgUEBgIABBIE3wECCgoNCgUEBgIABRIE3wELEQoNCgUEBgIAARIE3wESFgoNCgUEBgIAAxIE3wEZGgoMCgQEBgIBEgThAQIuCg0KBQQGAgEEEgThAQIKCg0KBQQGAgEGEgThAQsjCg0KBQQGAgEBEgThASQpCg0KBQQGAgEDEgThASwtCgwKBAQGAgISBOMBAiMKDQoFBAYCAgQSBOMBAgoKDQoFBAYCAgYSBOMBCxYKDQoFBAYCAgESBOMBFx4KDQoFBAYCAgMSBOMBISIKrwIKBAQGAwASBusBAu4BAxqeAiBSYW5nZSBvZiByZXNlcnZlZCBudW1lcmljIHZhbHVlcy4gUmVzZXJ2ZWQgdmFsdWVzIG1heSBub3QgYmUgdXNlZCBieQogZW50cmllcyBpbiB0aGUgc2FtZSBlbnVtLiBSZXNlcnZlZCByYW5nZXMgbWF5IG5vdCBvdmVybGFwLgoKIE5vdGUgdGhhdCB0aGlzIGlzIGRpc3RpbmN0IGZyb20gRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2UgaW4gdGhhdCBpdAogaXMgaW5jbHVzaXZlIHN1Y2ggdGhhdCBpdCBjYW4gYXBwcm9wcmlhdGVseSByZXByZXNlbnQgdGhlIGVudGlyZSBpbnQzMgogZG9tYWluLgoKDQoFBAYDAAESBOsBChsKHAoGBAYDAAIAEgTsAQQdIgwgSW5jbHVzaXZlLgoKDwoHBAYDAAIABBIE7AEEDAoPCgcEBgMAAgAFEgTsAQ0SCg8KBwQGAwACAAESBOwBExgKDwoHBAYDAAIAAxIE7AEbHAocCgYEBgMAAgESBO0BBBsiDCBJbmNsdXNpdmUuCgoPCgcEBgMAAgEEEgTtAQQMCg8KBwQGAwACAQUSBO0BDRIKDwoHBAYDAAIBARIE7QETFgoPCgcEBgMAAgEDEgTtARkaCqoBCgQEBgIDEgTzAQIwGpsBIFJhbmdlIG9mIHJlc2VydmVkIG51bWVyaWMgdmFsdWVzLiBSZXNlcnZlZCBudW1lcmljIHZhbHVlcyBtYXkgbm90IGJlIHVzZWQKIGJ5IGVudW0gdmFsdWVzIGluIHRoZSBzYW1lIGVudW0gZGVjbGFyYXRpb24uIFJlc2VydmVkIHJhbmdlcyBtYXkgbm90CiBvdmVybGFwLgoKDQoFBAYCAwQSBPMBAgoKDQoFBAYCAwYSBPMBCxwKDQoFBAYCAwESBPMBHSsKDQoFBAYCAwMSBPMBLi8KbAoEBAYCBBIE9wECJBpeIFJlc2VydmVkIGVudW0gdmFsdWUgbmFtZXMsIHdoaWNoIG1heSBub3QgYmUgcmV1c2VkLiBBIGdpdmVuIG5hbWUgbWF5IG9ubHkKIGJlIHJlc2VydmVkIG9uY2UuCgoNCgUEBgIEBBIE9wECCgoNCgUEBgIEBRIE9wELEQoNCgUEBgIEARIE9wESHwoNCgUEBgIEAxIE9wEiIwoxCgIEBxIG+wEAgAIBGiMgRGVzY3JpYmVzIGEgdmFsdWUgd2l0aGluIGFuIGVudW0uCgoLCgMEBwESBPsBCCAKDAoEBAcCABIE/AECGwoNCgUEBwIABBIE/AECCgoNCgUEBwIABRIE/AELEQoNCgUEBwIAARIE/AESFgoNCgUEBwIAAxIE/AEZGgoMCgQEBwIBEgT9AQIcCg0KBQQHAgEEEgT9AQIKCg0KBQQHAgEFEgT9AQsQCg0KBQQHAgEBEgT9AREXCg0KBQQHAgEDEgT9ARobCgwKBAQHAgISBP8BAigKDQoFBAcCAgQSBP8BAgoKDQoFBAcCAgYSBP8BCxsKDQoFBAcCAgESBP8BHCMKDQoFBAcCAgMSBP8BJicKJAoCBAgSBoMCAIgCARoWIERlc2NyaWJlcyBhIHNlcnZpY2UuCgoLCgMECAESBIMCCB4KDAoEBAgCABIEhAICGwoNCgUECAIABBIEhAICCgoNCgUECAIABRIEhAILEQoNCgUECAIAARIEhAISFgoNCgUECAIAAxIEhAIZGgoMCgQECAIBEgSFAgIsCg0KBQQIAgEEEgSFAgIKCg0KBQQIAgEGEgSFAgsgCg0KBQQIAgEBEgSFAiEnCg0KBQQIAgEDEgSFAiorCgwKBAQIAgISBIcCAiYKDQoFBAgCAgQSBIcCAgoKDQoFBAgCAgYSBIcCCxkKDQoFBAgCAgESBIcCGiEKDQoFBAgCAgMSBIcCJCUKMAoCBAkSBosCAJkCARoiIERlc2NyaWJlcyBhIG1ldGhvZCBvZiBhIHNlcnZpY2UuCgoLCgMECQESBIsCCB0KDAoEBAkCABIEjAICGwoNCgUECQIABBIEjAICCgoNCgUECQIABRIEjAILEQoNCgUECQIAARIEjAISFgoNCgUECQIAAxIEjAIZGgqXAQoEBAkCARIEkAICIRqIASBJbnB1dCBhbmQgb3V0cHV0IHR5cGUgbmFtZXMuICBUaGVzZSBhcmUgcmVzb2x2ZWQgaW4gdGhlIHNhbWUgd2F5IGFzCiBGaWVsZERlc2NyaXB0b3JQcm90by50eXBlX25hbWUsIGJ1dCBtdXN0IHJlZmVyIHRvIGEgbWVzc2FnZSB0eXBlLgoKDQoFBAkCAQQSBJACAgoKDQoFBAkCAQUSBJACCxEKDQoFBAkCAQESBJACEhwKDQoFBAkCAQMSBJACHyAKDAoEBAkCAhIEkQICIgoNCgUECQICBBIEkQICCgoNCgUECQICBRIEkQILEQoNCgUECQICARIEkQISHQoNCgUECQICAxIEkQIgIQoMCgQECQIDEgSTAgIlCg0KBQQJAgMEEgSTAgIKCg0KBQQJAgMGEgSTAgsYCg0KBQQJAgMBEgSTAhkgCg0KBQQJAgMDEgSTAiMkCkUKBAQJAgQSBJYCAjUaNyBJZGVudGlmaWVzIGlmIGNsaWVudCBzdHJlYW1zIG11bHRpcGxlIGNsaWVudCBtZXNzYWdlcwoKDQoFBAkCBAQSBJYCAgoKDQoFBAkCBAUSBJYCCw8KDQoFBAkCBAESBJYCECAKDQoFBAkCBAMSBJYCIyQKDQoFBAkCBAgSBJYCJTQKDQoFBAkCBAcSBJYCLjMKRQoEBAkCBRIEmAICNRo3IElkZW50aWZpZXMgaWYgc2VydmVyIHN0cmVhbXMgbXVsdGlwbGUgc2VydmVyIG1lc3NhZ2VzCgoNCgUECQIFBBIEmAICCgoNCgUECQIFBRIEmAILDwoNCgUECQIFARIEmAIQIAoNCgUECQIFAxIEmAIjJAoNCgUECQIFCBIEmAIlNAoNCgUECQIFBxIEmAIuMwqvDgoCBAoSBr0CALcDATJOID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIE9wdGlvbnMKMtANIEVhY2ggb2YgdGhlIGRlZmluaXRpb25zIGFib3ZlIG1heSBoYXZlICJvcHRpb25zIiBhdHRhY2hlZC4gIFRoZXNlIGFyZQoganVzdCBhbm5vdGF0aW9ucyB3aGljaCBtYXkgY2F1c2UgY29kZSB0byBiZSBnZW5lcmF0ZWQgc2xpZ2h0bHkgZGlmZmVyZW50bHkKIG9yIG1heSBjb250YWluIGhpbnRzIGZvciBjb2RlIHRoYXQgbWFuaXB1bGF0ZXMgcHJvdG9jb2wgbWVzc2FnZXMuCgogQ2xpZW50cyBtYXkgZGVmaW5lIGN1c3RvbSBvcHRpb25zIGFzIGV4dGVuc2lvbnMgb2YgdGhlICpPcHRpb25zIG1lc3NhZ2VzLgogVGhlc2UgZXh0ZW5zaW9ucyBtYXkgbm90IHlldCBiZSBrbm93biBhdCBwYXJzaW5nIHRpbWUsIHNvIHRoZSBwYXJzZXIgY2Fubm90CiBzdG9yZSB0aGUgdmFsdWVzIGluIHRoZW0uICBJbnN0ZWFkIGl0IHN0b3JlcyB0aGVtIGluIGEgZmllbGQgaW4gdGhlICpPcHRpb25zCiBtZXNzYWdlIGNhbGxlZCB1bmludGVycHJldGVkX29wdGlvbi4gVGhpcyBmaWVsZCBtdXN0IGhhdmUgdGhlIHNhbWUgbmFtZQogYWNyb3NzIGFsbCAqT3B0aW9ucyBtZXNzYWdlcy4gV2UgdGhlbiB1c2UgdGhpcyBmaWVsZCB0byBwb3B1bGF0ZSB0aGUKIGV4dGVuc2lvbnMgd2hlbiB3ZSBidWlsZCBhIGRlc2NyaXB0b3IsIGF0IHdoaWNoIHBvaW50IGFsbCBwcm90b3MgaGF2ZSBiZWVuCiBwYXJzZWQgYW5kIHNvIGFsbCBleHRlbnNpb25zIGFyZSBrbm93bi4KCiBFeHRlbnNpb24gbnVtYmVycyBmb3IgY3VzdG9tIG9wdGlvbnMgbWF5IGJlIGNob3NlbiBhcyBmb2xsb3dzOgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIG9ubHkgYmUgdXNlZCB3aXRoaW4gYSBzaW5nbGUgYXBwbGljYXRpb24gb3IKICAgb3JnYW5pemF0aW9uLCBvciBmb3IgZXhwZXJpbWVudGFsIG9wdGlvbnMsIHVzZSBmaWVsZCBudW1iZXJzIDUwMDAwCiAgIHRocm91Z2ggOTk5OTkuICBJdCBpcyB1cCB0byB5b3UgdG8gZW5zdXJlIHRoYXQgeW91IGRvIG5vdCB1c2UgdGhlCiAgIHNhbWUgbnVtYmVyIGZvciBtdWx0aXBsZSBvcHRpb25zLgogKiBGb3Igb3B0aW9ucyB3aGljaCB3aWxsIGJlIHB1Ymxpc2hlZCBhbmQgdXNlZCBwdWJsaWNseSBieSBtdWx0aXBsZQogICBpbmRlcGVuZGVudCBlbnRpdGllcywgZS1tYWlsIHByb3RvYnVmLWdsb2JhbC1leHRlbnNpb24tcmVnaXN0cnlAZ29vZ2xlLmNvbQogICB0byByZXNlcnZlIGV4dGVuc2lvbiBudW1iZXJzLiBTaW1wbHkgcHJvdmlkZSB5b3VyIHByb2plY3QgbmFtZSAoZS5nLgogICBPYmplY3RpdmUtQyBwbHVnaW4pIGFuZCB5b3VyIHByb2plY3Qgd2Vic2l0ZSAoaWYgYXZhaWxhYmxlKSAtLSB0aGVyZSdzIG5vCiAgIG5lZWQgdG8gZXhwbGFpbiBob3cgeW91IGludGVuZCB0byB1c2UgdGhlbS4gVXN1YWxseSB5b3Ugb25seSBuZWVkIG9uZQogICBleHRlbnNpb24gbnVtYmVyLiBZb3UgY2FuIGRlY2xhcmUgbXVsdGlwbGUgb3B0aW9ucyB3aXRoIG9ubHkgb25lIGV4dGVuc2lvbgogICBudW1iZXIgYnkgcHV0dGluZyB0aGVtIGluIGEgc3ViLW1lc3NhZ2UuIFNlZSB0aGUgQ3VzdG9tIE9wdGlvbnMgc2VjdGlvbiBvZgogICB0aGUgZG9jcyBmb3IgZXhhbXBsZXM6CiAgIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvZG9jcy9wcm90byNvcHRpb25zCiAgIElmIHRoaXMgdHVybnMgb3V0IHRvIGJlIHBvcHVsYXIsIGEgd2ViIHNlcnZpY2Ugd2lsbCBiZSBzZXQgdXAKICAgdG8gYXV0b21hdGljYWxseSBhc3NpZ24gb3B0aW9uIG51bWJlcnMuCgoLCgMECgESBL0CCBMK9AEKBAQKAgASBMMCAiMa5QEgU2V0cyB0aGUgSmF2YSBwYWNrYWdlIHdoZXJlIGNsYXNzZXMgZ2VuZXJhdGVkIGZyb20gdGhpcyAucHJvdG8gd2lsbCBiZQogcGxhY2VkLiAgQnkgZGVmYXVsdCwgdGhlIHByb3RvIHBhY2thZ2UgaXMgdXNlZCwgYnV0IHRoaXMgaXMgb2Z0ZW4KIGluYXBwcm9wcmlhdGUgYmVjYXVzZSBwcm90byBwYWNrYWdlcyBkbyBub3Qgbm9ybWFsbHkgc3RhcnQgd2l0aCBiYWNrd2FyZHMKIGRvbWFpbiBuYW1lcy4KCg0KBQQKAgAEEgTDAgIKCg0KBQQKAgAFEgTDAgsRCg0KBQQKAgABEgTDAhIeCg0KBQQKAgADEgTDAiEiCr8CCgQECgIBEgTLAgIrGrACIElmIHNldCwgYWxsIHRoZSBjbGFzc2VzIGZyb20gdGhlIC5wcm90byBmaWxlIGFyZSB3cmFwcGVkIGluIGEgc2luZ2xlCiBvdXRlciBjbGFzcyB3aXRoIHRoZSBnaXZlbiBuYW1lLiAgVGhpcyBhcHBsaWVzIHRvIGJvdGggUHJvdG8xCiAoZXF1aXZhbGVudCB0byB0aGUgb2xkICItLW9uZV9qYXZhX2ZpbGUiIG9wdGlvbikgYW5kIFByb3Rv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0wIgU2V0cyB0aGUgR28gcGFja2FnZSB3aGVyZSBzdHJ1Y3RzIGdlbmVyYXRlZCBmcm9tIHRoaXMgLnByb3RvIHdpbGwgYmUKIHBsYWNlZC4gSWYgb21pdHRlZCwgdGhlIEdvIHBhY2thZ2Ugd2lsbCBiZSBkZXJpdmVkIGZyb20gdGhlIGZvbGxvd2luZzoKICAgLSBUaGUgYmFzZW5hbWUgb2YgdGhlIHBhY2thZ2UgaW1wb3J0IHBhdGgsIGlmIHByb3ZpZGVkLgogICAtIE90aGVyd2lzZSwgdGhlIHBhY2thZ2Ugc3RhdGVtZW50IGluIHRoZSAucHJvdG8gZmlsZSwgaWYgcHJlc2VudC4KICAgLSBPdGhlcndpc2UsIHRoZSBiYXNlbmFtZSBvZiB0aGUgLnByb3RvIGZpbGUsIHdpdGhvdXQgZXh0ZW5zaW9uLgoKDQoFBAoCBgQSBO8CAgoKDQoFBAoCBgUSBO8CCxEKDQoFBAoCBgESBO8CEhwKDQoFBAoCBgMSBO8CHyEK1AQKBAQKAgcSBP0CAjkaxQQgU2hvdWxkIGdlbmVyaWMgc2VydmljZXMgYmUgZ2VuZXJhdGVkIGluIGVhY2ggbGFuZ3VhZ2U/ICAiR2VuZXJpYyIgc2VydmljZXMKIGFyZSBub3Qgc3BlY2lmaWMgdG8gYW55IHBhcnRpY3VsYXIgUlBDIHN5c3RlbS4gIFRoZXkgYXJlIGdlbmVyYXRlZCBieSB0aGUKIG1haW4gY29kZSBnZW5lcmF0b3JzIGluIGVhY2ggbGFuZ3VhZ2UgKHdpdGhvdXQgYWRkaXRpb25hbCBwbHVnaW5zKS4KIEdlbmVyaWMgc2VydmljZXMgd2VyZSB0aGUgb25seSBraW5kIG9mIHNlcnZpY2UgZ2VuZXJhdGlvbiBzdXBwb3J0ZWQgYnkKIGVhcmx5IHZlcnNpb25zIG9mIGdvb2dsZS5wcm90b2J1Zi4KCiBHZW5lcmljIHNlcnZpY2VzIGFyZSBub3cgY29uc2lkZXJlZCBkZXByZWNhdGVkIGluIGZhdm9yIG9mIHVzaW5nIHBsdWdpbnMKIHRoYXQgZ2VuZXJhdGUgY29kZSBzcGVjaWZpYyB0byB5b3VyIHBhcnRpY3VsYXIgUlBDIHN5c3RlbS4gIFRoZXJlZm9yZSwKIHRoZXNl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IGNhbm5vdCBoYXZlIGFueSBkZWZpbmVkIGZpZWxkczsgTWVzc2FnZVNldHMgb25seQogaGF2ZSBleHRlbnNpb25zLgoKIEFsbCBleHRlbnNpb25zIG9mIHlvdXIgdHlwZSBtdXN0IGJlIHNpbmd1bGFyIG1lc3NhZ2VzOyBlLmcuIHRoZXkgY2Fubm90CiBiZSBpbnQzMnMsIGVudW1zLCBvciByZXBlYXRlZCBtZXNzYWdlcy4KCiBCZWNhdXNlIHRoaXMgaXMgYW4gb3B0aW9uLCB0aGUgYWJvdmUgdHdvIHJlc3RyaWN0aW9ucyBhcmUgbm90IGVuZm9yY2VkIGJ5CiB0aGUgcHJvdG9jb2wgY29tcGlsZXIuCgoNCgUECwIABBIEzAMCCgoNCgUECwIABRIEzAMLDwoNCgUECwIAARIEzAMQJwoNCgUECwIAAxIEzAMqKwoNCgUECwIACBIEzAMsOwoNCgUECwIABxIEzAM1OgrrAQoEBAsCARIE0QMCRBrcASBEaXNhYmxlcyB0aGUgZ2VuZXJhdGlvbiBvZiB0aGUgc3RhbmRhcmQgImRlc2NyaXB0b3IoKSIgYWNjZXNzb3IsIHdoaWNoIGNhbgogY29uZmxpY3Qgd2l0aCBhIGZpZWxkIG9mIHRoZSBzYW1lIG5hbWUuICBUaGlzIGlzIG1lYW50IHRvIG1ha2UgbWlncmF0aW9uCiBmcm9tIHByb3RvMSBlYXNpZXI7IG5ldyBjb2RlIHNob3VsZCBhdm9pZCBmaWVsZHMgbmFtZWQgImRlc2NyaXB0b3IiLgoKDQoFBAsCAQQSBNEDAgoKDQoFBAsCAQUSBNEDCw8KDQoFBAsCAQESBNEDEC8KDQoFBAsCAQMSBNEDMjMKDQoFBAsCAQgSBNEDNEMKDQoFBAsCAQcSBNEDPUIK7gEKBAQLAgISBNcDAi8a3wEgSXMgdGhpcyBtZXNzYWdlIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgdGhlIG1lc3NhZ2UsIG9yIGl0IHdpbGwgYmUgY29tcGxldGVseSBpZ25vcmVkOyBpbiB0aGUgdmVyeSBsZWFzdCwKIHRoaXMgaXMgYSBmb3JtYWxpemF0aW9uIGZvciBkZXByZWNhdGluZyBtZXNzYWdlcy4KCg0KBQQLAgIEEgTXAwIKCg0KBQQLAgIFEgTXAwsPCg0KBQQLAgIBEgTXAxAaCg0KBQQLAgIDEgTXAx0eCg0KBQQLAgIIEgTXAx8uCg0KBQQLAgIHEgTXAygtCp4GCgQECwIDEgTuAwIeGo8GIFdoZXRoZXIgdGhlIG1lc3NhZ2UgaXMgYW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbWFwIGVudHJ5IHR5cGUgZm9yIHRoZQogbWFwcyBmaWVsZC4KCiBGb3IgbWFwcyBmaWVsZHM6CiAgICAgbWFwPEtleVR5cGUsIFZhbHVlVHlwZT4gbWFwX2ZpZWxkID0gMTsKIFRoZSBwYXJzZWQgZGVzY3JpcHRvciBsb29rcyBsaWtlOgogICAgIG1lc3NhZ2UgTWFwRmllbGRFbnRyeSB7CiAgICAgICAgIG9wdGlvbiBtYXBfZW50cnkgPSB0cnVlOwogICAgICAgICBvcHRpb25hbCBLZXlUeXBlIGtleSA9IDE7CiAgICAgICAgIG9wdGlvbmFsIFZhbHVlVHlwZSB2YWx1ZSA9IDI7CiAgICAgfQogICAgIHJlcGVhdGVkIE1hcEZpZWxkRW50cnkgbWFwX2ZpZWxkID0gMTsKCiBJbXBsZW1lbnRhdGlvbnMgbWF5IGNob29zZSBub3QgdG8gZ2VuZXJhdGUgdGhlIG1hcF9lbnRyeT10cnVlIG1lc3NhZ2UsIGJ1dAogdXNlIGEgbmF0aXZlIG1hcCBpbiB0aGUgdGFyZ2V0IGxhbmd1YWdlIHRvIGhvbGQgdGhlIGtleXMgYW5kIHZhbHVlcy4KIFRoZSByZWZsZWN0aW9uIEFQSXMgaW4gc3VjaCBpbXBsZW1lbnRpb25zIHN0aWxsIG5lZWQgdG8gd29yayBhcwogaWYgdGhlIGZpZWxkIGlzIGEgcmVwZWF0ZWQgbWVzc2FnZSBmaWVsZC4KCiBOT1RFOiBEbyBub3Qgc2V0IHRoZSBvcHRpb24gaW4gLnByb3RvIGZpbGVzLiBBbHdheXMgdXNlIHRoZSBtYXBzIHN5bnRheAogaW5zdGVhZC4gVGhlIG9wdGlvbiBzaG91bGQgb25seSBiZSBpbXBsaWNpdGx5IHNl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Z2UgaXMgaW5pdGlhbGx5IHBhcnNlZCwgdGhlCiBpbm5lciBtZXNzYWdlJ3MgY29udGVudHMgd2lsbCBub3QgYmUgcGFyc2VkIGJ1dCBpbnN0ZWFkIHN0b3JlZCBpbiBlbmNvZGVkCiBmb3JtLiAgVGhlIGlubmVyIG1lc3NhZ2Ugd2lsbCBhY3R1YWxseSBiZSBwYXJzZWQgd2hlbiBpdCBpcyBmaXJzdCBhY2Nlc3NlZC4KCiBUaGlzIGlzIG9ubHkgYSBoaW50LiAgSW1wbGVtZW50YXRpb25zIGFyZSBmcmVlIHRvIGNob29zZSB3aGV0aGVyIHRvIHVzZQogZWFnZXIgb3IgbGF6eSBwYXJzaW5nIHJlZ2FyZGxlc3Mgb2YgdGhlIHZhbHVlIG9mIHRoaXMgb3B0aW9uLiAgSG93ZXZlciwKIHNldHRpbmcgdGhpcyBvcHRpb24gdHJ1ZSBzdWdnZXN0cyB0aGF0IHRoZSBwcm90b2NvbCBhdXRob3IgYmVsaWV2ZXMgdGhhdAogdXNpbmcgbGF6eSBwYXJzaW5nIG9uIHRoaXMgZmllbGQgaXMgd29ydGggdGhlIGFkZGl0aW9uYWwgYm9va2tlZXBpbmcKIG92ZXJoZWFkIHR5cGljYWxseSBuZWVkZWQgdG8gaW1wbGVtZW50IGl0LgoKIFRoaXMgb3B0aW9uIGRvZXMgbm90IGFmZmVjdCB0aGUgcHVibGljIGludGVyZmFjZSBvZiBhbnkgZ2VuZXJhdGVkIGNvZGU7CiBhbGwgbWV0aG9kIHNpZ25hdHVyZXMgcmVtYWluIHRoZSBzYW1lLiAgRnVydGhlcm1vcmUsIHRocmVhZC1zYWZldHkgb2YgdGhlCiBpbnRlcmZhY2UgaXMgbm90IGFmZmVjdGVkIGJ5IHRoaXMgb3B0aW9uOyBjb25zdCBtZXRob2RzIHJlbWFpbiBzYWZlIHRvCiBjYWxsIGZyb20gbXVsdGlwbGUgdGhyZWFkcyBjb25jdXJyZW50bHksIHdoaWxlIG5vbi1jb25zdCBtZXRob2RzIGNvbnRpbnVlCiB0byByZXF1aXJlIGV4Y2x1c2l2ZSBhY2Nlc3MuCgoKIE5vdGUgdGhhdCBpbXBsZW1lbnRhdGlvbnMgbWF5IGNob29zZSBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzIHdpdGhpbgogYSBsYXp5IHN1Yi1tZXNzYWdlLiAgVGhhdCBpcywgY2FsbGluZyBJc0luaXRpYWxpemVkKCkgb24gdGhlIG91dGVyIG1lc3NhZ2UKIG1heSByZXR1cm4gdHJ1ZSBldmVuIGlmIHRoZSBpbm5lciBtZXNzYWdlIGhhcyBtaXNzaW5nIHJlcXVpcmVkIGZpZWxkcy4KIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ugb3RoZXJ3aXNlIHRoZSBpbm5lciBtZXNzYWdlIHdvdWxkIGhhdmUgdG8gYmUKIHBhcnNlZCBpbiBvcmRlciB0byBwZXJmb3JtIHRoZSBjaGVjaywgZGVmZWF0aW5nIHRoZSBwdXJwb3NlIG9mIGxhenkKIHBhcnNpbmcuICBBbiBpbXBsZW1lbnRhdGlvbiB3aGljaCBjaG9vc2VzIG5vdCB0byBjaGVjayByZXF1aXJlZCBmaWVsZHMKIG11c3QgYmUgY29uc2lzdGVudCBhYm91dCBpdC4gIFRoYXQgaXMsIGZvciBhbnkgcGFydGljdWxhciBzdWItbWVzc2FnZSwgdGhlCiBpbXBsZW1lbnRhdGlvbiBtdXN0IGVpdGhlciAqYWx3YXlzKiBjaGVjayBpdHMgcmVxdWlyZWQgZmllbGRzLCBvciAqbmV2ZXIqCiBjaGVjayBpdHMgcmVxdWlyZWQgZmllbGRzLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBtZXNzYWdlIGhhcwogYmVlbiBwYXJzZWQuCgoNCgUEDAIDBBIEwgQCCgoNCgUEDAIDBRIEwgQLDwoNCgUEDAIDARIEwgQQFAoNCgUEDAIDAxIEwgQXGAoNCgUEDAIDCBIEwgQZKAoNCgUEDAIDBxIEwgQiJwroAQoEBAwCBBIEyAQCLxrZASBJcyB0aGlzIGZpZWxkIGRlcHJlY2F0ZWQ/CiBEZXBlbmRpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSwgdGhpcyBjYW4gZW1pdCBEZXByZWNhdGVkIGFubm90YXRpb25zCiBmb3IgYWNjZXNzb3JzLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkgbGVhc3QsIHRoaXMKIGlz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VGhlIHBhcnNlciBzdG9yZXMgb3B0aW9ucyBpdCBkb2Vzbid0IHJlY29nbml6ZSBoZXJlLiBTZWUgYWJvdmUuCgoNCgUEEQICBBIErwUCCgoNCgUEEQICBhIErwULHgoNCgUEEQICARIErwUfMwoNCgUEEQICAxIErwU2OQpaCgMEEQUSBLIFAhkaTSBDbGllbnRzIGNhbiBkZWZpbmUgY3VzdG9tIG9wdGlvbnMgaW4gZXh0ZW5zaW9ucyBvZiB0aGlzIG1lc3NhZ2UuIFNlZSBhYm92ZS4KCgwKBAQRBQASBLIFDRgKDQoFBBEFAAESBLIFDREKDQoFBBEFAAISBLIFFRgKiwMKAgQSEga8BQDQBQEa/AIgQSBtZXNzYWdlIHJlcHJlc2VudGluZyBhIG9wdGlvbiB0aGUgcGFyc2VyIGRvZXMgbm90IHJlY29nbml6ZS4gVGhpcyBvbmx5CiBhcHBlYXJzIGluIG9wdGlvbnMgcHJvdG9zIGNyZWF0ZWQgYnkgdGhlIGNvbXBpbGVyOjpQYXJzZXIgY2xhc3MuCiBEZXNjcmlwdG9yUG9vbCByZXNvbHZlcyB0aGVzZSB3aGVuIGJ1aWxkaW5nIERlc2NyaXB0b3Igb2JqZWN0cy4gVGhlcmVmb3JlLAogb3B0aW9ucyBwcm90b3MgaW4gZGVzY3JpcHRvciBvYmplY3RzIChlLmcuIHJldHVybmVkIGJ5IERlc2NyaXB0b3I6Om9wdGlvbnMoKSwKIG9yIHByb2R1Y2VkIGJ5IERlc2NyaXB0b3I6OkNvcHlUbygpKSB3aWxsIG5ldmVyIGhhdmUgVW5pbnRlcnByZXRlZE9wdGlvbnMKIGluIHRoZW0uCgoLCgMEEgESBLwFCBsKywIKBAQSAwASBsIFAsUFAxq6AiBUaGUgbmFtZSBvZiB0aGUgdW5pbnRlcnByZXRlZCBvcHRpb24uICBFYWNoIHN0cmluZyByZXByZXNlbnRzIGEgc2VnbWVudCBpbgogYSBkb3Qtc2VwYXJhdGVkIG5hbWUuICBpc19leHRlbnNpb24gaXMgdHJ1ZSBpZmYgYSBzZWdtZW50IHJlcHJlc2VudHMgYW4KIGV4dGVuc2lvbiAoZGVub3RlZCB3aXRoIHBhcmVudGhlc2VzIGluIG9wdGlvbnMgc3BlY3MgaW4gLnBy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LCA0IF0gIFRoZSBsYWJlbCAob3B0aW9uYWwpLgogICBbYyxkKSAgWyA0LCAwLCAyLCAwLCA1IF0gIFRoZSB0eXBlIChzdHJpbmcpLgogICBbZSxmKSAgWyA0LCAwLCAyLCAwLCAxIF0gIFRoZSBuYW1lIChmb28pLgogICBbZyxoKSAgWyA0LCAwLCAyLCAwLCAzIF0gIFRoZSBudW1iZXIgKDEpLgoKIE5vdGVzOgogLSBBIGxvY2F0aW9uIG1heSByZWZlciB0byBhIHJlcGVhdGVkIGZpZWxkIGl0c2VsZiAoaS5lLiBub3QgdG8gYW55CiAgIHBhcnRpY3VsYXIgaW5kZXggd2l0aGluIGl0KS4gIFRoaXMgaXMgdXNlZCB3aGVuZXZlciBhIHNldCBvZiBlbGVtZW50cyBhcmUKICAgbG9naWNhbGx5IGVuY2xvc2VkIGluIGEgc2luZ2xlIGNvZGUgc2VnbWVudC4gIEZvciBleGFtcGxlLCBhbiBlbnRpcmUKICAgZXh0ZW5kIGJsb2NrIChwb3NzaWJseSBjb250YWluaW5nIG11bHRpcGxlIGV4dGVuc2lvbiBkZWZpbml0aW9ucykgd2lsbAogICBoYXZlIGFuIG91dGVyIGxvY2F0aW9uIHdob3NlIHBhdGggcmVmZXJzIHRvIHRoZSAiZXh0ZW5zaW9ucyIgcmVwZWF0ZWQKICAgZmllbGQgd2l0aG91dCBhbiBpbmRleC4KIC0gTXVsdGlwbGUgbG9jYXRpb25zIG1heSBoYXZlIHRoZSBzYW1lIHBhdGguICBUaGlzIGhhcHBlbnMgd2hlbiBhIHNpbmdsZQogICBsb2dpY2FsIGRlY2xhcmF0aW9uIGlzIHNwcmVhZCBvdXQgYWNyb3NzIG11bHRpcGxlIHBsYWNlcy4gIFRoZSBtb3N0CiAgIG9idmlvdXMgZXhhbXBsZSBpcyB0aGUgImV4dGVuZCIgYmxvY2sgYWdhaW4gLS0gdGhlcmUgbWF5IGJlIG11bHRpcGxlCiAgIGV4dGVuZCBibG9ja3MgaW4gdGhlIHNhbWUgc2NvcGUsIGVhY2ggb2Ygd2hpY2ggd2lsbCBoYXZlIHRoZSBzYW1lIHBhdGguCiAtIEEgbG9jYXRpb24ncyBzcGFuIGlzIG5vdCBhbHdheXMgYSBzdWJzZXQgb2YgaXRzIHBhcmVudCdzIHNwYW4uICBGb3IKICAgZXhhbXBsZSwgdGhlICJleHRlbmRlZSIgb2YgYW4gZXh0ZW5zaW9uIGRlY2xhcmF0aW9uIGFwcGVhcnMgYXQgdGhlCiAgIGJlZ2lubmluZyBvZiB0aGUgImV4dGVuZCIgYmxvY2sgYW5kIGlzIHNoYXJlZCBieSBhbGwgZXh0ZW5zaW9ucyB3aXRoaW4KICAgdGhlIGJsb2NrLgogLSBKdXN0IGJlY2F1c2UgYSBsb2NhdGlvbidzIHNwYW4gaXMgYSBzdWJzZXQgb2Ygc29tZSBvdGhlciBsb2NhdGlvbidzIHNwYW4KICAgZG9lcyBub3QgbWVhbiB0aGF0IGl0IGlzIGEgZGVzY2VuZGVudC4gIEZvciBleGFtcGxlLCBhICJncm91cCIgZGVmaW5lcwogICBib3RoIGEgdHlwZSBhbmQgYSBmaWVsZCBpbiBhIHNpbmdsZSBkZWNsYXJhdGlvbi4gIFRodXMsIHRoZSBsb2NhdGlvbnMKICAgY29ycmVzcG9uZGluZyB0byB0aGUgdHlwZSBhbmQgZmllbGQgYW5kIHRoZWlyIGNvbXBvbmVudHMgd2lsbCBvdmVybGFwLgogLSBDb2RlIHdoaWNoIHRyaWVzIHRvIGludGVycHJldCBsb2NhdGlvbnMgc2hvdWxkIHByb2JhYmx5IGJlIGRlc2lnbmVkIHRvCiAgIGlnbm9yZSB0aG9zZSB0aGF0IGl0IGRvZXNuJ3QgdW5kZXJzdGFuZCwgYXMgbW9yZSB0eXBlcyBvZiBsb2NhdGlvbnMgY291bGQKICAgYmUgcmVjb3JkZWQgaW4gdGhlIGZ1dHVyZS4KCg0KBQQTAgAEEgSDBgIKCg0KBQQTAgAGEgSDBgsTCg0KBQQTAgABEgSDBhQcCg0KBQQTAgADEgSDBh8gCg4KBAQTAwASBoQGAtcGAwoNCgUEEwMAARIEhAYKEgqDBwoGBBMDAAIAEgScBgQqGvIGIElkZW50aWZpZXMgd2hpY2ggcGFydCBvZiB0aGUgRmlsZURlc2NyaXB0b3JQcm90byB3YXMgZGVmaW5lZCBhdCB0aGlzCiBsb2NhdGlvbi4KCiBFYWNoIGVsZW1lbnQgaXMgYSBmaWVsZCBudW1iZXIgb3IgYW4gaW5kZXguICBUaGV5IGZvcm0gYSBwYXRoIGZyb20KIHRoZSByb290IEZpbGVEZXNjcmlwdG9yUHJvdG8gdG8gdGhlIHBsYWNlIHdoZXJlIHRoZSBkZWZpbml0aW9uLiAgRm9yCiBleGFtcGxlLCB0aGlzIHBhdGg6CiAgIFsgNCwgMywgMiwgNywgMSBdCiByZWZlcnMgdG86CiAgIGZpbGUubWVzc2FnZV90eXBlKDMpICAvLyA0LCAzCiAgICAgICAuZmllbGQoNykgICAgICAgICAvLyAyLCA3CiAgICAgICAubmFtZSgpICAgICAgICAgICAvLyAxCiBUaGlzIGlzIGJlY2F1c2UgRmlsZURlc2NyaXB0b3JQcm90by5tZXNzYWdlX3R5cGUgaGFzIGZpZWxkIG51bWJlciA0OgogICByZXBlYXRlZCBEZXNjcmlwdG9yUHJvdG8gbWVzc2FnZV90eXBlID0gNDsKIGFuZCBEZXNjcmlwdG9yUHJvdG8uZmllbGQgaGFzIGZpZWxkIG51bWJlciAyOgogICByZXBlYXRlZCBGaWVsZERlc2NyaXB0b3JQcm90byBmaWVsZCA9IDI7CiBhbmQgRmllbGREZXNjcmlwdG9yUHJvdG8ubmFtZSBoYXMgZmllbGQgbnVtYmVyIDE6CiAgIG9wdGlvbmFsIHN0cmluZyBuYW1lID0gMTsKCiBUaHVzLCB0aGUgYWJvdmUgcGF0aCBnaXZlcyB0aGUgbG9jYXRpb24gb2YgYSBmaWVsZCBuYW1lLiAgSWYgd2UgcmVtb3ZlZAogdGhlIGxhc3QgZWxlbWVudDoKICAgWyA0LCAzLCAyLCA3IF0KIHRoaXMgcGF0aCByZWZlcnMgdG8gdGhlIHdob2xlIGZpZWxkIGRlY2xhcmF0aW9uIChmcm9tIHRoZSBiZWdpbm5pbmcKIG9mIHRoZSBsYWJlbCB0byB0aGUgdGVybWluYXRpbmcgc2VtaWNvbG9uKS4KCg8KBwQTAwACAAQSBJwGBAwKDwoHBBMDAAIABRIEnAYNEgoPCgcEEwMAAgABEgScBhMXCg8KBwQTAwACAAMSBJwGGhsKDwoHBBMDAAIACBIEnAYcKQoQCggEEwMAAgAIAhIEnAYdKArSAgoGBBMDAAIBEgSjBgQqGsECIEFsd2F5cyBoYXMgZXhhY3RseSB0aHJlZSBvciBmb3VyIGVsZW1lbnRzOiBzdGFydCBsaW5lLCBzdGFydCBjb2x1bW4sCiBlbmQgbGluZSAob3B0aW9uYWwsIG90aGVyd2lzZSBhc3N1bWVkIHNhbWUgYXMgc3RhcnQgbGluZSksIGVuZCBjb2x1bW4uCiBUaGVzZSBhcmUgcGFja2VkIGludG8gYSBzaW5nbGUgZmllbGQgZm9yIGVmZmljaWVuY3kuICBOb3RlIHRoYXQgbGluZQogYW5kIGNvbHVtbiBudW1iZXJzIGFyZSB6ZXJvLWJhc2VkIC0tIHR5cGljYWxseSB5b3Ugd2lsbCB3YW50IHRvIGFkZAogMSB0byBlYWNoIGJlZm9yZSBkaXNwbGF5aW5nIHRvIGEgdXNlci4KCg8KBwQTAwACAQQSBKMGBAwKDwoHBBMDAAIBBRIEowYNEgoPCgcEEwMAAgEBEgSjBhMXCg8KBwQTAwACAQMSBKMGGhsKDwoHBBMDAAIBCBIEowYcKQoQCggEEwMAAgEIAhIEowYdKAqlDAoGBBMDAAICEgTUBgQpGpQMIElmIHRoaXMgU291cmNlQ29kZUluZm8gcmVwcmVzZW50cyBhIGNvbXBsZXRlIGRlY2xhcmF0aW9uLCB0aGVzZSBhcmUgYW55CiBjb21tZW50cyBhcHBlYXJpbmcgYmVmb3JlIGFuZCBhZnRlciB0aGUgZGVjbGFyYXRpb24gd2hpY2ggYXBwZWFyIHRvIGJlCiBhdHRhY2hlZCB0byB0aGUgZGVjbGFyYXRpb24uCgogQSBzZXJpZXMgb2YgbGluZSBjb21tZW50cyBhcHBlYXJpbmcgb24gY29uc2VjdXRpdmUgbGluZXMsIHdpdGggbm8gb3RoZXIKIHRva2VucyBhcHBlYXJpbmcgb24gdGhvc2UgbGluZXMsIHdpbGwgYmUgdHJlYXRlZCBhcyBhIHNpbmdsZSBjb21tZW50LgoKIGxlYWRpbmdfZGV0YWNoZWRfY29tbWVudHMgd2lsbCBrZWVwIHBhcmFncmFwaHMgb2YgY29tbWVudHMgdGhhdCBhcHBlYXIKIGJlZm9yZSAoYnV0IG5vdCBjb25uZWN0ZWQgdG8pIHRoZSBjdXJyZW50IGVsZW1lbnQuIEVhY2ggcGFyYWdyYXBoLAogc2VwYXJhdGVkIGJ5IGVtcHR5IGxpbmVzLCB3aWxsIGJlIG9uZSBjb21tZW50IGVsZW1lbnQgaW4gdGhlIHJlcGVhdGVkCiBmaWVsZC4KCiBPbmx5IHRoZSBjb21tZW50IGNvbnRlbnQgaXMgcHJvdmlkZWQ7IGNvbW1lbnQgbWFya2VycyAoZS5nLiAvLykgYXJlCiBzdHJpcHBlZCBvdXQuICBGb3IgYmxvY2sgY29tbWVudHMsIGxlYWRpbmcgd2hpdGVzcGFjZSBhbmQgYW4gYXN0ZXJpc2sKIHdpbGwgYmUgc3RyaXBwZWQgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggbGluZSBvdGhlciB0aGFuIHRoZSBmaXJzdC4KIE5ld2xpbmVzIGFyZSBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LgoKIEV4YW1wbGVzOgoKICAgb3B0aW9uYWwgaW50MzIgZm9vID0gMTsgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gZm9vLgogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhci4KICAgb3B0aW9uYWwgaW50MzIgYmFyID0gMjsKCiAgIG9wdGlvbmFsIHN0cmluZyBiYXogPSAzOwogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGJhei4KICAgLy8gQW5vdGhlciBsaW5lIGF0dGFjaGVkIHRvIGJhei4KCiAgIC8vIENvbW1lbnQgYXR0YWNoZWQgdG8gcXV4LgogICAvLwogICAvLyBBbm90aGVyIGxpbmUgYXR0YWNoZWQgdG8gcXV4LgogICBvcHRpb25hbCBkb3VibGUgcXV4ID0gNDsKCiAgIC8vIERldGFjaGVkIGNvbW1lbnQgZm9yIGNvcmdlLiBUaGlzIGlzIG5vdCBsZWFkaW5nIG9yIHRyYWlsaW5nIGNvbW1lbnRzCiAgIC8vIHRvIHF1eCBvciBjb3JnZSBiZWNhdXNlIHRoZXJlIGFyZSBibGFuayBsaW5lcyBzZXBhcmF0aW5nIGl0IGZyb20KICAgLy8gYm90aC4KCiAgIC8vIERldGFjaGVkIGNvbW1lbnQgZm9yIGNvcmdlIHBhcmFncmFwaCAyLgoKICAgb3B0aW9uYWwgc3RyaW5nIGNvcmdlID0gNTsKICAgLyogQmxvY2sgY29tbWVudCBh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Z2xlLmFwaRoVZ29vZ2xlL2FwaS9odHRwLnByb3RvGiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90bzpLCgRodHRwEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMYsMq8IiABKAsyFC5nb29nbGUuYXBpLkh0dHBSdWxlUgRodHRwQm4KDmNvbS5nb29nbGUuYXBpQhBBbm5vdGF0aW9uc1Byb3RvUAFaQWdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYXBpL2Fubm90YXRpb25zO2Fubm90YXRpb25zogIER0FQSUq8BgoGEgQOAB4BCsIECgEMEgMOABIytwQgQ29weXJpZ2h0IChjKSAyMDE1LCBHb29nbGUgSW5jLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCAoBAhIDEAATCgkKAgMAEgMSAB8KCQoCAwESAxMAKgoICgEIEgMVAFgKCQoCCAsSAxUAWAoICgEIEgMWACIKCQoCCAoSAxYAIgoICgEIEgMXADEKCQoCCAgSAxcAMQoICgEIEgMYACcKCQoCCAESAxgAJwoICgEIEgMZACIKCQoCCCQSAxkAIgoJCgEHEgQbAB4BChwKAgcAEgMdAhsaESBTZWUgYEh0dHBSdWxlYC4KCgoKAwcAAhIDGwckCgsKAwcABBIEHQIbJgoKCgMHAAYSAx0CCgoKCgMHAAESAx0LDwoKCgMHAAMSAx0SGmIGcHJvdG8zCrgJChp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bxIGaGVhbHRoGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8ifQoMSGVhbHRoU3RhdHVzEjYKBXN0YXRlGAEgASgOMiAuaGVhbHRoLkhlYWx0aFN0YXR1cy5IZWFsdGhTdGF0ZVIFc3RhdGUiNQoLSGVhbHRoU3RhdGUSCwoHSEVBTFRIWRAAEg4KCk9WRVJMT0FERUQQARIJCgVEWUlORxACMmEKDUhlYWx0aFNlcnZpY2USUAoPR2V0SGVhbHRoU3RhdHVzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhQuaGVhbHRoLkhlYWx0aFN0YXR1cyIPgtPkkwIJEgcvaGVhbHRoQkwKGm9yZy5vcGVuY29yZC52b2x0aGEuaGVhbHRoWi5naXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vaGVhbHRoSp4GCgYSBAAAIgEKCAoBDBIDAAASCggKAQgSAwIARQoJCgIICxIDAgBFCggKAQgSAwMAMwoJCgIIARIDAwAzCggKAQISAwUADwoJCgIDABIDBwAmCgkKAgMBEgMIACUKNwoCBAASBAsAFgEaKyBFbmNvZGUgaGVhbHRoIHN0YXR1cyBvZiBhIFZvbHRoYSBpbnN0YW5jZQoKCgoDBAABEgMLCBQKHQoEBAAEABIEDgQSBRoPIEhlYWx0aCBzdGF0ZXMKCgwKBQQABAABEgMOCRQKKAoGBAAEAAIAEgMPCBQiGSBUaGUgaW5zdGFuY2UgaXMgaGVhbHRoeQoKDgoHBAAEAAIAARIDDwgPCg4KBwQABAACAAISAw8SEwpACgYEAAQAAgESAxAIFyIxIFRoZSBpbnN0YW5jZSBpcyBvdmVybG9hZGVkLCBkZWNyZWFzZSBxdWVyeSByYXRlCgoOCgcEAAQAAgEBEgMQCBIKDgoHBAAEAAIBAhIDEBUWCkcKBgQABAACAhIDEQgSIjggVGhlIGluc3RhbmNlIGlzIGluIGEgY3JpdGljYWwgY29uZGl0aW9uLCBkbyBub3QgdXNlIGl0CgoOCgcEAAQAAgIBEgMRCA0KDgoHBAAEAAICAhIDERARCj4KBAQAAgASAxUEGxoxIEN1cnJlbnQgc3RhdGUgb2YgaGVhbHRoIG9mIHRoaXMgVm9sdGhhIGluc3RhbmNlCgoNCgUEAAIABBIEFQQSBQoMCgUEAAIABhIDFQQPCgwKBQQAAgABEgMVEBUKDAoFBAACAAMSAxUYGQolCgIGABIEGQAiARoZIEhlYWx0aCByZWxhdGVkIHNlcnZpY2VzCgoKCgMGAAESAxkIFQpBCgQGAAIAEgQcBCAFGjMgUmV0dXJuIGN1cnJlbnQgaGVhbHRoIHN0YXR1cyBvZiBhIFZvbHRoYSBpbnN0YW5jZQoKDAoFBgACAAESAxwIFwoMCgUGAAIAAhIDHBgtCgwKBQYAAgADEgMcOEQKDQoFBgACAAQSBB0IHwoKEQoJBgACAASwyrwiEgQdCB8KYgZwcm90bzMK1okICh92b2x0aGFfcHJvdG9zL29wZW5mbG93XzEzLnByb3RvEgtvcGVuZmxvd18xMxocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90byJjCgpvZnBfaGVhZGVyEhgKB3ZlcnNpb24YASABKA1SB3ZlcnNpb24SKQoEdHlwZRgCIAEoDjIVLm9wZW5mbG93XzEzLm9mcF90eXBlUgR0eXBlEhAKA3hpZBgDIAEoDVIDeGlkIqsBChVvZnBfaGVsbG9fZWxlbV9oZWFkZXISNAoEdHlwZRgBIAEoDjIgLm9wZW5mbG93XzEzLm9mcF9oZWxsb19lbGVtX3R5cGVSBHR5cGUSUQoNdmVyc2lvbmJpdG1hcBgCIAEoCzIpLm9wZW5mbG93XzEzLm9mcF9oZWxsb19lbGVtX3ZlcnNpb25iaXRtYXBIAFINdmVyc2lvbmJpdG1hcEIJCgdlbGVtZW50IjgKHG9mcF9oZWxsb19lbGVtX3ZlcnNpb25iaXRtYXASGAoHYml0bWFwcxgCIAMoDVIHYml0bWFwcyJLCglvZnBfaGVsbG8SPgoIZWxlbWVudHMYASADKAsyIi5vcGVuZmxvd18xMy5vZnBfaGVsbG9fZWxlbV9oZWFkZXJSCGVsZW1lbnRzIk0KEW9mcF9zd2l0Y2hfY29uZmlnEhQKBWZsYWdzGAEgASgNUgVmbGFncxIiCg1taXNzX3NlbmRfbGVuGAIgASgNUgttaXNzU2VuZExlbiJCCg1vZnBfdGFibGVfbW9kEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEhYKBmNvbmZpZxgCIAEoDVIGY29uZmlnIqACCghvZnBfcG9ydBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SFwoHaHdfYWRkchgCIAMoDVIGaHdBZGRyEhIKBG5hbWUYAyABKAlSBG5hbWUSFgoGY29uZmlnGAQgASgNUgZjb25maWcSFAoFc3RhdGUYBSABKA1SBXN0YXRlEhIKBGN1cnIYBiABKA1SBGN1cnISHgoKYWR2ZXJ0aXNlZBgHIAEoDVIKYWR2ZXJ0aXNlZBIcCglzdXBwb3J0ZWQYCCABKA1SCXN1cHBvcnRlZBISCgRwZWVyGAkgASgNUgRwZWVyEh0KCmN1cnJfc3BlZWQYCiABKA1SCWN1cnJTcGVlZBIbCgltYXhfc3BlZWQYCyABKA1SCG1heFNwZWVkIrUBChNvZnBfc3dpdGNoX2ZlYXR1cmVzEh8KC2RhdGFwYXRoX2lkGAEgASgEUgpkYXRhcGF0aElkEhsKCW5fYnVmZmVycxgCIAEoDVIIbkJ1ZmZlcnMSGQoIbl90YWJsZXMYAyABKA1SB25UYWJsZXMSIQoMYXV4aWxpYXJ5X2lkGAQgASgNUgthdXhpbGlhcnlJZBIiCgxjYXBhYmlsaXRpZXMYBSABKA1SDGNhcGFiaWxpdGllcyJyCg9vZnBfcG9ydF9zdGF0dXMSNAoGcmVhc29uGAEgASgOMhwub3BlbmZsb3dfMTMub2ZwX3BvcnRfcmVhc29uUgZyZWFzb24SKQoEZGVzYxgCIAEoCzIVLm9wZW5mbG93XzEzLm9mcF9wb3J0UgRkZXNjIk8KEW9mcF9kZXZpY2Vfc3RhdHVzEjoKBnN0YXR1cxgBIAEoDjIiLm9wZW5mbG93XzEzLm9mcF9kZXZpY2VfY29ubmVjdGlvblIGc3RhdHVzIooBCgxvZnBfcG9ydF9tb2QSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhcKB2h3X2FkZHIYAiADKA1SBmh3QWRkchIWCgZjb25maWcYAyABKA1SBmNvbmZpZxISCgRtYXNrGAQgASgNUgRtYXNrEhwKCWFkdmVydGlzZRgFIAEoDVIJYWR2ZXJ0aXNlIncKCW9mcF9tYXRjaBIvCgR0eXBlGAEgASgOMhsub3BlbmZsb3dfMTMub2ZwX21hdGNoX3R5cGVSBHR5cGUSOQoKb3htX2ZpZWxkcxgCIAMoCzIaLm9wZW5mbG93XzEzLm9mcF9veG1fZmllbGRSCW94bUZpZWxkcyLqAQoNb2ZwX294bV9maWVsZBI3CglveG1fY2xhc3MYASABKA4yGi5vcGVuZmxvd18xMy5vZnBfb3htX2NsYXNzUghveG1DbGFzcxI9CglvZmJfZmllbGQYBCABKAsyHi5vcGVuZmxvd18xMy5vZnBfb3htX29mYl9maWVsZEgAUghvZmJGaWVsZBJYChJleHBlcmltZW50ZXJfZmllbGQYBSABKAsyJy5vcGVuZmxvd18xMy5vZnBfb3htX2V4cGVyaW1lbnRlcl9maWVsZEgAUhFleHBlcmltZW50ZXJGaWVsZEIHCgVmaWVsZCLXDgoRb2ZwX294bV9vZmJfZmllbGQSNAoEdHlwZRgBIAEoDjIgLm9wZW5mbG93XzEzLm94bV9vZmJfZmllbGRfdHlwZXNSBHR5cGUSGQoIaGFzX21hc2sYAiABKAhSB2hhc01hc2sSFAoEcG9ydBgDIAEoDUgAUgRwb3J0EiUKDXBoeXNpY2FsX3BvcnQYBCABKA1IAFIMcGh5c2ljYWxQb3J0EicKDnRhYmxlX21ldGFkYXRhGAUgASgESABSDXRhYmxlTWV0YWRhdGESGQoHZXRoX2RzdBgGIAEoDEgAUgZldGhEc3QSGQoHZXRoX3NyYxgHIAEoDEgAUgZldGhTcmMSGwoIZXRoX3R5cGUYCCABKA1IAFIHZXRoVHlwZRIbCgh2bGFuX3ZpZBgJIAEoDUgAUgd2bGFuVmlkEhsKCHZsYW5fcGNwGAogASgNSABSB3ZsYW5QY3ASGQoHaXBfZHNjcBgLIAEoDUgAUgZpcERzY3ASFwoGaXBfZWNuGAwgASgNSABSBWlwRWNuEhsKCGlwX3Byb3RvGA0gASgNSABSB2lwUHJvdG8SGwoIaXB2NF9zcmMYDiABKA1IAFIHaXB2NFNyYxIbCghpcHY0X2RzdBgPIAEoDUgAUgdpcHY0RHN0EhkKB3RjcF9zcmMYECABKA1IAFIGdGNwU3JjEhkKB3RjcF9kc3QYESABKA1IAFIGdGNwRHN0EhkKB3VkcF9zcmMYEiABKA1IAFIGdWRwU3JjEhkKB3VkcF9kc3QYEyABKA1IAFIGdWRwRHN0EhsKCHNjdHBfc3JjGBQgASgNSABSB3NjdHBTcmMSGwoIc2N0cF9kc3QYFSABKA1IAFIHc2N0cERzdBIhCgtpY21wdjRfdHlwZRgWIAEoDUgAUgppY21wdjRUeXBlEiEKC2ljbXB2NF9jb2RlGBcgASgNSABSCmljbXB2NENvZGUSFwoGYXJwX29wGBggASgNSABSBWFycE9wEhkKB2FycF9zcGEYGSABKA1IAFIGYXJwU3BhEhkKB2FycF90cGEYGiABKA1IAFIGYXJwVHBhEhkKB2FycF9zaGEYGyABKAxIAFIGYXJwU2hhEhkKB2FycF90aGEYHCABKAxIAFIGYXJwVGhhEhsKCGlwdjZfc3JjGB0gASgMSABSB2lwdjZTcmMSGwoIaXB2Nl9kc3QYHiABKAxIAFIHaXB2NkRzdBIhCgtpcHY2X2ZsYWJlbBgfIAEoDUgAUgppcHY2RmxhYmVsEiEKC2ljbXB2Nl90eXBlGCAgASgNSABSCmljbXB2NlR5cGUSIQoLaWNtcHY2X2NvZGUYISABKA1IAFIKaWNtcHY2Q29kZRImCg5pcHY2X25kX3RhcmdldBgiIAEoDEgAUgxpcHY2TmRUYXJnZXQSIAoLaXB2Nl9uZF9zc2wYIyABKAxIAFIJaXB2Nk5kU3NsEiAKC2lwdjZfbmRfdGxsGCQgASgMSABSCWlwdjZOZFRsbBIfCgptcGxzX2xhYmVsGCUgASgNSABSCW1wbHNMYWJlbBIZCgdtcGxzX3RjGCYgASgNSABSBm1wbHNUYxIbCghtcGxzX2JvcxgnIAEoDUgAUgdtcGxzQm9zEhsKCHBiYl9pc2lkGCggASgNSABSB3BiYklzaWQSHQoJdHVubmVsX2lkGCkgASgESABSCHR1bm5lbElkEiEKC2lwdjZfZXh0aGRyGCogASgNSABSCmlwdjZFeHRoZHISMAoTdGFibGVfbWV0YWRhdGFfbWFzaxhpIAEoBEgBUhF0YWJsZU1ldGFkYXRhTWFzaxIiCgxldGhfZHN0X21hc2sYaiABKAxIAVIKZXRoRHN0TWFzaxIiCgxldGhfc3JjX21hc2sYayABKAxIAVIKZXRoU3JjTWFzaxIkCg12bGFuX3ZpZF9tYXNrGG0gASgNSAFSC3ZsYW5WaWRNYXNrEiQKDWlwdjRfc3JjX21hc2sYciABKA1IAVILaXB2NFNyY01hc2sSJAoNaXB2NF9kc3RfbWFzaxhzIAEoDUgBUgtpcHY0RHN0TWFzaxIiCgxhcnBfc3BhX21hc2sYfSABKA1IAVIKYXJwU3BhTWFzaxIiCgxhcnBfdHBhX21hc2sYfiABKA1IAVIKYXJwVHBhTWFzaxIlCg1pcHY2X3NyY19tYXNrGIEBIAEoDEgBUgtpcHY2U3JjTWFzaxIlCg1pcHY2X2RzdF9tYXNrGIIBIAEoDEgBUgtpcHY2RHN0TWFzaxIrChBpcHY2X2ZsYWJlbF9tYXNrGIMBIAEoDUgBUg5pcHY2RmxhYmVsTWFzaxIlCg1wYmJfaXNpZF9tYXNrGIwBIAEoDUgBUgtwYmJJc2lkTWFzaxInCg50dW5uZWxfaWRfbWFzaxiNASABKARIAVIMdHVubmVsSWRNYXNrEisKEGlwdjZfZXh0aGRyX21hc2sYjgEgASgNSAFSDmlwdjZFeHRoZHJNYXNrQgcKBXZhbHVlQgYKBG1hc2siXwoab2ZwX294bV9leHBlcmltZW50ZXJfZmllbGQSHQoKb3htX2hlYWRlchgBIAEoDVIJb3htSGVhZGVyEiIKDGV4cGVyaW1lbnRlchgCIAEoDVIMZXhwZXJpbWVudGVyIrIECgpvZnBfYWN0aW9uEjAKBHR5cGUYASABKA4yHC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX3R5cGVSBHR5cGUSOAoGb3V0cHV0GAIgASgLMh4ub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9vdXRwdXRIAFIGb3V0cHV0Ej0KCG1wbHNfdHRsGAMgASgLMiAub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9tcGxzX3R0bEgAUgdtcGxzVHRsEjIKBHB1c2gYBCABKAsyHC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX3B1c2hIAFIEcHVzaBI9Cghwb3BfbXBscxgFIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fcG9wX21wbHNIAFIHcG9wTXBscxI1CgVncm91cBgGIAEoCzIdLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fZ3JvdXBIAFIFZ3JvdXASNwoGbndfdHRsGAcgASgLMh4ub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9ud190dGxIAFIFbndUdGwSQAoJc2V0X2ZpZWxkGAggASgLMiEub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9zZXRfZmllbGRIAFIIc2V0RmllbGQSSgoMZXhwZXJpbWVudGVyGAkgASgLMiQub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9leHBlcmltZW50ZXJIAFIMZXhwZXJpbWVudGVyQggKBmFjdGlvbiJAChFvZnBfYWN0aW9uX291dHB1dBISCgRwb3J0GAEgASgNUgRwb3J0EhcKB21heF9sZW4YAiABKA1SBm1heExlbiIwChNvZnBfYWN0aW9uX21wbHNfdHRsEhkKCG1wbHNfdHRsGAEgASgNUgdtcGxzVHRsIi8KD29mcF9hY3Rpb25fcHVzaBIcCglldGhlcnR5cGUYASABKA1SCWV0aGVydHlwZSIzChNvZnBfYWN0aW9uX3BvcF9tcGxzEhwKCWV0aGVydHlwZRgBIAEoDVIJZXRoZXJ0eXBlIi0KEG9mcF9hY3Rpb25fZ3JvdXASGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQiKgoRb2ZwX2FjdGlvbl9ud190dGwSFQoGbndfdHRsGAEgASgNUgVud1R0bCJIChRvZnBfYWN0aW9uX3NldF9maWVsZBIwCgVmaWVsZBgBIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9veG1fZmllbGRSBWZpZWxkIlEKF29mcF9hY3Rpb25fZXhwZXJpbWVudGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYAiABKAxSBGRhdGEinAMKD29mcF9pbnN0cnVjdGlvbhISCgR0eXBlGAEgASgNUgR0eXBlEkgKCmdvdG9fdGFibGUYAiABKAsyJy5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fZ290b190YWJsZUgAUglnb3RvVGFibGUSVAoOd3JpdGVfbWV0YWRhdGEYAyABKAsyKy5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fd3JpdGVfbWV0YWRhdGFIAFINd3JpdGVNZXRhZGF0YRJACgdhY3Rpb25zGAQgASgLMiQub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX2FjdGlvbnNIAFIHYWN0aW9ucxI6CgVtZXRlchgFIAEoCzIiLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvbl9tZXRlckgAUgVtZXRlchJPCgxleHBlcmltZW50ZXIYBiABKAsyKS5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIGCgRkYXRhIjcKGm9mcF9pbnN0cnVjdGlvbl9nb3RvX3RhYmxlEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkImEKHm9mcF9pbnN0cnVjdGlvbl93cml0ZV9tZXRhZGF0YRIaCghtZXRhZGF0YRgBIAEoBFIIbWV0YWRhdGESIwoNbWV0YWRhdGFfbWFzaxgCIAEoBFIMbWV0YWRhdGFNYXNrIkwKF29mcF9pbnN0cnVjdGlvbl9hY3Rpb25zEjEKB2FjdGlvbnMYASADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zIjIKFW9mcF9pbnN0cnVjdGlvbl9tZXRlchIZCghtZXRlcl9pZBgBIAEoDVIHbWV0ZXJJZCJWChxvZnBfaW5zdHJ1Y3Rpb25fZXhwZXJpbWVudGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYAiABKAxSBGRhdGEi3AMKDG9mcF9mbG93X21vZBIWCgZjb29raWUYASABKARSBmNvb2tpZRIfCgtjb29raWVfbWFzaxgCIAEoBFIKY29va2llTWFzaxIZCgh0YWJsZV9pZBgDIAEoDVIHdGFibGVJZBI7Cgdjb21tYW5kGAQgASgOMiEub3BlbmZsb3dfMTMub2ZwX2Zsb3dfbW9kX2NvbW1hbmRSB2NvbW1hbmQSIQoMaWRsZV90aW1lb3V0GAUgASgNUgtpZGxlVGltZW91dBIhCgxoYXJkX3RpbWVvdXQYBiABKA1SC2hhcmRUaW1lb3V0EhoKCHByaW9yaXR5GAcgASgNUghwcmlvcml0eRIbCglidWZmZXJfaWQYCCABKA1SCGJ1ZmZlcklkEhkKCG91dF9wb3J0GAkgASgNUgdvdXRQb3J0EhsKCW91dF9ncm91cBgKIAEoDVIIb3V0R3JvdXASFAoFZmxhZ3MYCyABKA1SBWZsYWdzEiwKBW1hdGNoGAwgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaBJACgxpbnN0cnVjdGlvbnMYDSADKAsyHC5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25SDGluc3RydWN0aW9ucyKXAQoKb2ZwX2J1Y2tldBIWCgZ3ZWlnaHQYASABKA1SBndlaWdodBIdCgp3YXRjaF9wb3J0GAIgASgNUgl3YXRjaFBvcnQSHwoLd2F0Y2hfZ3JvdXAYAyABKA1SCndhdGNoR3JvdXASMQoHYWN0aW9ucxgEIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25SB2FjdGlvbnMizAEKDW9mcF9ncm91cF9tb2QSPAoHY29tbWFuZBgBIAEoDjIiLm9wZW5mbG93XzEzLm9mcF9ncm91cF9tb2RfY29tbWFuZFIHY29tbWFuZBIvCgR0eXBlGAIgASgOMhsub3BlbmZsb3dfMTMub2ZwX2dyb3VwX3R5cGVSBHR5cGUSGQoIZ3JvdXBfaWQYAyABKA1SB2dyb3VwSWQSMQoHYnVja2V0cxgEIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9idWNrZXRSB2J1Y2tldHMijQEKDm9mcF9wYWNrZXRfb3V0EhsKCWJ1ZmZlcl9pZBgBIAEoDVIIYnVmZmVySWQSFwoHaW5fcG9ydBgCIAEoDVIGaW5Qb3J0EjEKB2FjdGlvbnMYAyADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zEhIKBGRhdGEYBCABKAxSBGRhdGEi3AEKDW9mcF9wYWNrZXRfaW4SGwoJYnVmZmVyX2lkGAEgASgNUghidWZmZXJJZBI5CgZyZWFzb24YAiABKA4yIS5vcGVuZmxvd18xMy5vZnBfcGFja2V0X2luX3JlYXNvblIGcmVhc29uEhkKCHRhYmxlX2lkGAMgASgNUgd0YWJsZUlkEhYKBmNvb2tpZRgEIAEoBFIGY29va2llEiwKBW1hdGNoGAUgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaBISCgRkYXRhGAYgASgMUgRkYXRhIp0DChBvZnBfZmxvd19yZW1vdmVkEhYKBmNvb2tpZRgBIAEoBFIGY29va2llEhoKCHByaW9yaXR5GAIgASgNUghwcmlvcml0eRI8CgZyZWFzb24YAyABKA4yJC5vcGVuZmxvd18xMy5vZnBfZmxvd19yZW1vdmVkX3JlYXNvblIGcmVhc29uEhkKCHRhYmxlX2lkGAQgASgNUgd0YWJsZUlkEiEKDGR1cmF0aW9uX3NlYxgFIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgGIAEoDVIMZHVyYXRpb25Oc2VjEiEKDGlkbGVfdGltZW91dBgHIAEoDVILaWRsZVRpbWVvdXQSIQoMaGFyZF90aW1lb3V0GAggASgNUgtoYXJkVGltZW91dBIhCgxwYWNrZXRfY291bnQYCSABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYCiABKARSCWJ5dGVDb3VudBIsCgVtYXRjaBh5IAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gi3AIKFW9mcF9tZXRlcl9iYW5kX2hlYWRlchI0CgR0eXBlGAEgASgOMiAub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfdHlwZVIEdHlwZRISCgRyYXRlGAIgASgNUgRyYXRlEh0KCmJ1cnN0X3NpemUYAyABKA1SCWJ1cnN0U2l6ZRI2CgRkcm9wGAQgASgLMiAub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfZHJvcEgAUgRkcm9wEkoKC2RzY3BfcmVtYXJrGAUgASgLMicub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfZHNjcF9yZW1hcmtIAFIKZHNjcFJlbWFyaxJOCgxleHBlcmltZW50ZXIYBiABKAsyKC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF9leHBlcmltZW50ZXJIAFIMZXhwZXJpbWVudGVyQgYKBGRhdGEiFQoTb2ZwX21ldGVyX2JhbmRfZHJvcCI7ChpvZnBfbWV0ZXJfYmFuZF9kc2NwX3JlbWFyaxIdCgpwcmVjX2xldmVsGAEgASgNUglwcmVjTGV2ZWwiQQobb2ZwX21ldGVyX2JhbmRfZXhwZXJpbWVudGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyIrgBCg1vZnBfbWV0ZXJfbW9kEjwKB2NvbW1hbmQYASABKA4yIi5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfbW9kX2NvbW1hbmRSB2NvbW1hbmQSFAoFZmxhZ3MYAiABKA1SBWZsYWdzEhkKCG1ldGVyX2lkGAMgASgNUgdtZXRlcklkEjgKBWJhbmRzGAQgAygLMiIub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfaGVhZGVyUgViYW5kcyJ8Cg1vZnBfZXJyb3JfbXNnEi8KBmhlYWRlchgBIAEoCzIXLm9wZW5mbG93XzEzLm9mcF9oZWFkZXJSBmhlYWRlchISCgR0eXBlGAIgASgNUgR0eXBlEhIKBGNvZGUYAyABKA1SBGNvZGUSEgoEZGF0YRgEIAEoDFIEZGF0YSKDAQoab2ZwX2Vycm9yX2V4cGVyaW1lbnRlcl9tc2cSEgoEdHlwZRgBIAEoDVIEdHlwZRIZCghleHBfdHlwZRgCIAEoDVIHZXhwVHlwZRIiCgxleHBlcmltZW50ZXIYAyABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAQgASgMUgRkYXRhInYKFW9mcF9tdWx0aXBhcnRfcmVxdWVzdBIzCgR0eXBlGAEgASgOMh8ub3BlbmZsb3dfMTMub2ZwX211bHRpcGFydF90eXBlUgR0eXBlEhQKBWZsYWdzGAIgASgNUgVmbGFncxISCgRib2R5GAMgASgMUgRib2R5InQKE29mcF9tdWx0aXBhcnRfcmVwbHkSMwoEdHlwZRgBIAEoDjIfLm9wZW5mbG93XzEzLm9mcF9tdWx0aXBhcnRfdHlwZVIEdHlwZRIUCgVmbGFncxgCIAEoDVIFZmxhZ3MSEgoEYm9keRgDIAEoDFIEYm9keSKPAQoIb2ZwX2Rlc2MSGQoIbWZyX2Rlc2MYASABKAlSB21mckRlc2MSFwoHaHdfZGVzYxgCIAEoCVIGaHdEZXNjEhcKB3N3X2Rlc2MYAyABKAlSBnN3RGVzYxIdCgpzZXJpYWxfbnVtGAQgASgJUglzZXJpYWxOdW0SFwoHZHBfZGVzYxgFIAEoCVIGZHBEZXNjItIBChZvZnBfZmxvd19zdGF0c19yZXF1ZXN0EhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEhkKCG91dF9wb3J0GAIgASgNUgdvdXRQb3J0EhsKCW91dF9ncm91cBgDIAEoDVIIb3V0R3JvdXASFgoGY29va2llGAQgASgEUgZjb29raWUSHwoLY29va2llX21hc2sYBSABKARSCmNvb2tpZU1hc2sSLAoFbWF0Y2gYBiABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoIsUDCg5vZnBfZmxvd19zdGF0cxIOCgJpZBgOIAEoBFICaWQSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSIQoMZHVyYXRpb25fc2VjGAIgASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGAMgASgNUgxkdXJhdGlvbk5zZWMSGgoIcHJpb3JpdHkYBCABKA1SCHByaW9yaXR5EiEKDGlkbGVfdGltZW91dBgFIAEoDVILaWRsZVRpbWVvdXQSIQoMaGFyZF90aW1lb3V0GAYgASgNUgtoYXJkVGltZW91dBIUCgVmbGFncxgHIAEoDVIFZmxhZ3MSFgoGY29va2llGAggASgEUgZjb29raWUSIQoMcGFja2V0X2NvdW50GAkgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAogASgEUglieXRlQ291bnQSLAoFbWF0Y2gYDCABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoEkAKDGluc3RydWN0aW9ucxgNIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvblIMaW5zdHJ1Y3Rpb25zItcBChtvZnBfYWdncmVnYXRlX3N0YXRzX3JlcXVlc3QSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSGQoIb3V0X3BvcnQYAiABKA1SB291dFBvcnQSGwoJb3V0X2dyb3VwGAMgASgNUghvdXRHcm91cBIWCgZjb29raWUYBCABKARSBmNvb2tpZRIfCgtjb29raWVfbWFzaxgFIAEoBFIKY29va2llTWFzaxIsCgVtYXRjaBgGIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gifAoZb2ZwX2FnZ3JlZ2F0ZV9zdGF0c19yZXBseRIhCgxwYWNrZXRfY291bnQYASABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYAiABKARSCWJ5dGVDb3VudBIdCgpmbG93X2NvdW50GAMgASgNUglmbG93Q291bnQi7QMKGm9mcF90YWJsZV9mZWF0dXJlX3Byb3BlcnR5EjwKBHR5cGUYASABKA4yKC5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX3R5cGVSBHR5cGUSVgoMaW5zdHJ1Y3Rpb25zGAIgASgLMjAub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9pbnN0cnVjdGlvbnNIAFIMaW5zdHJ1Y3Rpb25zElIKC25leHRfdGFibGVzGAMgASgLMi8ub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9uZXh0X3RhYmxlc0gAUgpuZXh0VGFibGVzEkcKB2FjdGlvbnMYBCABKAsyKy5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX2FjdGlvbnNIAFIHYWN0aW9ucxI7CgNveG0YBSABKAsyJy5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX294bUgAUgNveG0SVgoMZXhwZXJpbWVudGVyGAYgASgLMjAub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9leHBlcmltZW50ZXJIAFIMZXhwZXJpbWVudGVyQgcKBXZhbHVlImcKI29mcF90YWJsZV9mZWF0dXJlX3Byb3BfaW5zdHJ1Y3Rpb25zEkAKDGluc3RydWN0aW9ucxgBIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvblIMaW5zdHJ1Y3Rpb25zIkoKIm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfbmV4dF90YWJsZXMSJAoObmV4dF90YWJsZV9pZHMYASADKA1SDG5leHRUYWJsZUlkcyJTCh5vZnBfdGFibGVfZmVhdHVyZV9wcm9wX2FjdGlvbnMSMQoHYWN0aW9ucxgBIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25SB2FjdGlvbnMiNQoab2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9veG0SFwoHb3htX2lkcxgDIAMoDVIGb3htSWRzIpEBCiNvZnBfdGFibGVfZmVhdHVyZV9wcm9wX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYAiABKA1SDGV4cGVyaW1lbnRlchIZCghleHBfdHlwZRgDIAEoDVIHZXhwVHlwZRIrChFleHBlcmltZW50ZXJfZGF0YRgEIAMoDVIQZXhwZXJpbWVudGVyRGF0YSKTAgoSb2ZwX3RhYmxlX2ZlYXR1cmVzEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEhIKBG5hbWUYAiABKAlSBG5hbWUSJQoObWV0YWRhdGFfbWF0Y2gYAyABKARSDW1ldGFkYXRhTWF0Y2gSJQoObWV0YWRhdGFfd3JpdGUYBCABKARSDW1ldGFkYXRhV3JpdGUSFgoGY29uZmlnGAUgASgNUgZjb25maWcSHwoLbWF4X2VudHJpZXMYBiABKA1SCm1heEVudHJpZXMSRwoKcHJvcGVydGllcxgHIAMoCzInLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BlcnR5Ugpwcm9wZXJ0aWVzIpcBCg9vZnBfdGFibGVfc3RhdHMSGQoIdGFibGVfaWQYASABKA1SB3RhYmxlSWQSIQoMYWN0aXZlX2NvdW50GAIgASgNUgthY3RpdmVDb3VudBIhCgxsb29rdXBfY291bnQYAyABKARSC2xvb2t1cENvdW50EiMKDW1hdGNoZWRfY291bnQYBCABKARSDG1hdGNoZWRDb3VudCIxChZvZnBfcG9ydF9zdGF0c19yZXF1ZXN0EhcKB3BvcnRfbm8YASABKA1SBnBvcnRObyLdAwoOb2ZwX3BvcnRfc3RhdHMSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEh0KCnJ4X3BhY2tldHMYAiABKARSCXJ4UGFja2V0cxIdCgp0eF9wYWNrZXRzGAMgASgEUgl0eFBhY2tldHMSGQoIcnhfYnl0ZXMYBCABKARSB3J4Qnl0ZXMSGQoIdHhfYnl0ZXMYBSABKARSB3R4Qnl0ZXMSHQoKcnhfZHJvcHBlZBgGIAEoBFIJcnhEcm9wcGVkEh0KCnR4X2Ryb3BwZWQYByABKARSCXR4RHJvcHBlZBIbCglyeF9lcnJvcnMYCCABKARSCHJ4RXJyb3JzEhsKCXR4X2Vycm9ycxgJIAEoBFIIdHhFcnJvcnMSIAoMcnhfZnJhbWVfZXJyGAogASgEUgpyeEZyYW1lRXJyEh4KC3J4X292ZXJfZXJyGAsgASgEUglyeE92ZXJFcnISHAoKcnhfY3JjX2VychgMIAEoBFIIcnhDcmNFcnISHgoKY29sbGlzaW9ucxgNIAEoBFIKY29sbGlzaW9ucxIhCgxkdXJhdGlvbl9zZWMYDiABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYDyABKA1SDGR1cmF0aW9uTnNlYyI0ChdvZnBfZ3JvdXBfc3RhdHNfcmVxdWVzdBIZCghncm91cF9pZBgBIAEoDVIHZ3JvdXBJZCJWChJvZnBfYnVja2V0X2NvdW50ZXISIQoMcGFja2V0X2NvdW50GAEgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAIgASgEUglieXRlQ291bnQilwIKD29mcF9ncm91cF9zdGF0cxIZCghncm91cF9pZBgBIAEoDVIHZ3JvdXBJZBIbCglyZWZfY291bnQYAiABKA1SCHJlZkNvdW50EiEKDHBhY2tldF9jb3VudBgDIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgEIAEoBFIJYnl0ZUNvdW50EiEKDGR1cmF0aW9uX3NlYxgFIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgGIAEoDVIMZHVyYXRpb25Oc2VjEkIKDGJ1Y2tldF9zdGF0cxgHIAMoCzIfLm9wZW5mbG93XzEzLm9mcF9idWNrZXRfY291bnRlclILYnVja2V0U3RhdHMijwEKDm9mcF9ncm91cF9kZXNjEi8KBHR5cGUYASABKA4yGy5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfdHlwZVIEdHlwZRIZCghncm91cF9pZBgCIAEoDVIHZ3JvdXBJZBIxCgdidWNrZXRzGAMgAygLMhcub3BlbmZsb3dfMTMub2ZwX2J1Y2tldFIHYnVja2V0cyJ2Cg9vZnBfZ3JvdXBfZW50cnkSLwoEZGVzYxgBIAEoCzIbLm9wZW5mbG93XzEzLm9mcF9ncm91cF9kZXNjUgRkZXNjEjIKBXN0YXRzGAIgASgLMhwub3BlbmZsb3dfMTMub2ZwX2dyb3VwX3N0YXRzUgVzdGF0cyKHAQoSb2ZwX2dyb3VwX2ZlYXR1cmVzEhQKBXR5cGVzGAEgASgNUgV0eXBlcxIiCgxjYXBhYmlsaXRpZXMYAiABKA1SDGNhcGFiaWxpdGllcxIdCgptYXhfZ3JvdXBzGAMgAygNUgltYXhHcm91cHMSGAoHYWN0aW9ucxgEIAMoDVIHYWN0aW9ucyI4ChtvZnBfbWV0ZXJfbXVsdGlwYXJ0X3JlcXVlc3QSGQoIbWV0ZXJfaWQYASABKA1SB21ldGVySWQiagoUb2ZwX21ldGVyX2JhbmRfc3RhdHMSKgoRcGFja2V0X2JhbmRfY291bnQYASABKARSD3BhY2tldEJhbmRDb3VudBImCg9ieXRlX2JhbmRfY291bnQYAiABKARSDWJ5dGVCYW5kQ291bnQioQIKD29mcF9tZXRlcl9zdGF0cxIZCghtZXRlcl9pZBgBIAEoDVIHbWV0ZXJJZBIdCgpmbG93X2NvdW50GAIgASgNUglmbG93Q291bnQSJgoPcGFja2V0X2luX2NvdW50GAMgASgEUg1wYWNrZXRJbkNvdW50EiIKDWJ5dGVfaW5fY291bnQYBCABKARSC2J5dGVJbkNvdW50EiEKDGR1cmF0aW9uX3NlYxgFIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgGIAEoDVIMZHVyYXRpb25Oc2VjEkAKCmJhbmRfc3RhdHMYByADKAsyIS5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfYmFuZF9zdGF0c1IJYmFuZFN0YXRzIn0KEG9mcF9tZXRlcl9jb25maWcSFAoFZmxhZ3MYASABKA1SBWZsYWdzEhkKCG1ldGVyX2lkGAIgASgNUgdtZXRlcklkEjgKBWJhbmRzGAMgAygLMiIub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfaGVhZGVyUgViYW5kcyKuAQoSb2ZwX21ldGVyX2ZlYXR1cmVzEhsKCW1heF9tZXRlchgBIAEoDVIIbWF4TWV0ZXISHQoKYmFuZF90eXBlcxgCIAEoDVIJYmFuZFR5cGVzEiIKDGNhcGFiaWxpdGllcxgDIAEoDVIMY2FwYWJpbGl0aWVzEhsKCW1heF9iYW5kcxgEIAEoDVIIbWF4QmFuZHMSGwoJbWF4X2NvbG9yGAUgASgNUghtYXhDb2xvciJ8Cg9vZnBfbWV0ZXJfZW50cnkSNQoGY29uZmlnGAEgASgLMh0ub3BlbmZsb3dfMTMub2ZwX21ldGVyX2NvbmZpZ1IGY29uZmlnEjIKBXN0YXRzGAIgASgLMhwub3BlbmZsb3dfMTMub2ZwX21ldGVyX3N0YXRzUgVzdGF0cyJ2CiFvZnBfZXhwZXJpbWVudGVyX211bHRpcGFydF9oZWFkZXISIgoMZXhwZXJpbWVudGVyGAEgASgNUgxleHBlcmltZW50ZXISGQoIZXhwX3R5cGUYAiABKA1SB2V4cFR5cGUSEgoEZGF0YRgDIAEoDFIEZGF0YSJsChdvZnBfZXhwZXJpbWVudGVyX2hlYWRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchIZCghleHBfdHlwZRgCIAEoDVIHZXhwVHlwZRISCgRkYXRhGAMgASgMUgRkYXRhIkUKFW9mcF9xdWV1ZV9wcm9wX2hlYWRlchIaCghwcm9wZXJ0eRgBIAEoDVIIcHJvcGVydHkSEAoDbGVuGAIgASgNUgNsZW4icgoXb2ZwX3F1ZXVlX3Byb3BfbWluX3JhdGUSQwoLcHJvcF9oZWFkZXIYASABKAsyIi5vcGVuZmxvd18xMy5vZnBfcXVldWVfcHJvcF9oZWFkZXJSCnByb3BIZWFkZXISEgoEcmF0ZRgCIAEoDVIEcmF0ZSJyChdvZnBfcXVldWVfcHJvcF9tYXhfcmF0ZRJDCgtwcm9wX2hlYWRlchgBIAEoCzIiLm9wZW5mbG93XzEzLm9mcF9xdWV1ZV9wcm9wX2hlYWRlclIKcHJvcEhlYWRlchISCgRyYXRlGAIgASgNUgRyYXRlIpoBChtvZnBfcXVldWVfcHJvcF9leHBlcmltZW50ZXISQwoLcHJvcF9oZWFkZXIYASABKAsyIi5vcGVuZmxvd18xMy5vZnBfcXVldWVfcHJvcF9oZWFkZXJSCnByb3BIZWFkZXISIgoMZXhwZXJpbWVudGVyGAIgASgNUgxleHBlcmltZW50ZXISEgoEZGF0YRgDIAEoDFIEZGF0YSKFAQoQb2ZwX3BhY2tldF9xdWV1ZRIZCghxdWV1ZV9pZBgBIAEoDVIHcXVldWVJZBISCgRwb3J0GAIgASgNUgRwb3J0EkIKCnByb3BlcnRpZXMYBCADKAsyIi5vcGVuZmxvd18xMy5vZnBfcXVldWVfcHJvcF9oZWFkZXJSCnByb3BlcnRpZXMiMgocb2ZwX3F1ZXVlX2dldF9jb25maWdfcmVxdWVzdBISCgRwb3J0GAEgASgNUgRwb3J0ImcKGm9mcF9xdWV1ZV9nZXRfY29uZmlnX3JlcGx5EhIKBHBvcnQYASABKA1SBHBvcnQSNQoGcXVldWVzGAIgAygLMh0ub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9xdWV1ZVIGcXVldWVzIkUKFG9mcF9hY3Rpb25fc2V0X3F1ZXVlEhIKBHR5cGUYASABKA1SBHR5cGUSGQoIcXVldWVfaWQYAyABKA1SB3F1ZXVlSWQiTQoXb2ZwX3F1ZXVlX3N0YXRzX3JlcXVlc3QSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhkKCHF1ZXVlX2lkGAIgASgNUgdxdWV1ZUlkIuQBCg9vZnBfcXVldWVfc3RhdHMSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhkKCHF1ZXVlX2lkGAIgASgNUgdxdWV1ZUlkEhkKCHR4X2J5dGVzGAMgASgEUgd0eEJ5dGVzEh0KCnR4X3BhY2tldHMYBCABKARSCXR4UGFja2V0cxIbCgl0eF9lcnJvcnMYBSABKARSCHR4RXJyb3JzEiEKDGR1cmF0aW9uX3NlYxgGIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgHIAEoDVIMZHVyYXRpb25Oc2VjIm0KEG9mcF9yb2xlX3JlcXVlc3QSNAoEcm9sZRgBIAEoDjIgLm9wZW5mbG93XzEzLm9mcF9jb250cm9sbGVyX3JvbGVSBHJvbGUSIwoNZ2VuZXJhdGlvbl9pZBgCIAEoBFIMZ2VuZXJhdGlvbklkIo4BChBvZnBfYXN5bmNfY29uZmlnEiQKDnBhY2tldF9pbl9tYXNrGAEgAygNUgxwYWNrZXRJbk1hc2sSKAoQcG9ydF9zdGF0dXNfbWFzaxgCIAMoDVIOcG9ydFN0YXR1c01hc2sSKgoRZmxvd19yZW1vdmVkX21hc2sYAyADKA1SD2Zsb3dSZW1vdmVkTWFzayJrCg5NZXRlck1vZFVwZGF0ZRIOCgJpZBgBIAEoCVICaWQSNwoJbWV0ZXJfbW9kGAIgASgLMhoub3BlbmZsb3dfMTMub2ZwX21ldGVyX21vZFIIbWV0ZXJNb2QSEAoDeGlkGAMgASgNUgN4aWQiUAoPTWV0ZXJTdGF0c1JlcGx5Ej0KC21ldGVyX3N0YXRzGAEgAygLMhwub3BlbmZsb3dfMTMub2ZwX21ldGVyX3N0YXRzUgptZXRlclN0YXRzImkKD0Zsb3dUYWJsZVVwZGF0ZRIOCgJpZBgBIAEoCVICaWQSNAoIZmxvd19tb2QYAiABKAsyGS5vcGVuZmxvd18xMy5vZnBfZmxvd19tb2RSB2Zsb3dNb2QSEAoDeGlkGAMgASgNUgN4aWQicQoURmxvd0dyb3VwVGFibGVVcGRhdGUSDgoCaWQYASABKAlSAmlkEjcKCWdyb3VwX21vZBgCIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9ncm91cF9tb2RSCGdyb3VwTW9kEhAKA3hpZBgDIAEoDVIDeGlkIjoKBUZsb3dzEjEKBWl0ZW1zGAEgAygLMhsub3BlbmZsb3dfMTMub2ZwX2Zsb3dfc3RhdHNSBWl0ZW1zIjwKBk1ldGVycxIyCgVpdGVtcxgBIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9lbnRyeVIFaXRlbXMiQAoKRmxvd0dyb3VwcxIyCgVpdGVtcxgBIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9ncm91cF9lbnRyeVIFaXRlbXMiaQoLRmxvd0NoYW5nZXMSKQoGdG9fYWRkGAEgASgLMhIub3BlbmZsb3dfMTMuRmxvd3NSBXRvQWRkEi8KCXRvX3JlbW92ZRgCIAEoCzISLm9wZW5mbG93XzEzLkZsb3dzUgh0b1JlbW92ZSKuAQoQRmxvd0dyb3VwQ2hhbmdlcxIuCgZ0b19hZGQYASABKAsyFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzUgV0b0FkZBI0Cgl0b19yZW1vdmUYAiABKAsyFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzUgh0b1JlbW92ZRI0Cgl0b191cGRhdGUYAyABKAsyFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzUgh0b1VwZGF0ZSJTCghQYWNrZXRJbhIOCgJpZBgBIAEoCVICaWQSNwoJcGFja2V0X2luGAIgASgLMhoub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9pblIIcGFja2V0SW4iVwoJUGFja2V0T3V0Eg4KAmlkGAEgASgJUgJpZBI6CgpwYWNrZXRfb3V0GAIgASgLMhsub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9vdXRSCXBhY2tldE91dCLiAQoLQ2hhbmdlRXZlbnQSDgoCaWQYASABKAlSAmlkEj8KC3BvcnRfc3RhdHVzGAIgASgLMhwub3BlbmZsb3dfMTMub2ZwX3BvcnRfc3RhdHVzSABSCnBvcnRTdGF0dXMSMgoFZXJyb3IYAyABKAsyGi5vcGVuZmxvd18xMy5vZnBfZXJyb3JfbXNnSABSBWVycm9yEkUKDWRldmljZV9zdGF0dXMYBCABKAsyHi5vcGVuZmxvd18xMy5vZnBfZGV2aWNlX3N0YXR1c0gAUgxkZXZpY2VTdGF0dXNCBwoFZXZlbnQiRQoMRmxvd01ldGFkYXRhEjUKBm1ldGVycxgBIAMoCzIdLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9jb25maWdSBm1ldGVycyrVAQoLb2ZwX3BvcnRfbm8SEAoMT0ZQUF9JTlZBTElEEAASEAoIT0ZQUF9NQVgQgP7//wcSFAoMT0ZQUF9JTl9QT1JUEPj///8HEhIKCk9GUFBfVEFCTEUQ+f///wcSEwoLT0ZQUF9OT1JNQUwQ+v///wcSEgoKT0ZQUF9GTE9PRBD7////BxIQCghPRlBQX0FMTBD8////BxIXCg9PRlBQX0NPTlRST0xMRVIQ/f///wcSEgoKT0ZQUF9MT0NBTBD+////BxIQCghPRlBQX0FOWRD/////ByrIBQoIb2ZwX3R5cGUSDgoKT0ZQVF9IRUxMTxAAEg4KCk9GUFRfRVJST1IQARIVChFPRlBUX0VDSE9fUkVRVUVTVBACEhMKD09GUFRfRUNIT19SRVBMWRADEhUKEU9GUFRfRVhQRVJJTUVOVEVSEAQSGQoVT0ZQVF9GRUFUVVJFU19SRVFVRVNUEAUSFwoTT0ZQVF9GRUFUVVJFU19SRVBMWRAGEhsKF09GUFRfR0VUX0NPTkZJR19SRVFVRVNUEAcSGQoVT0ZQVF9HRVRfQ09ORklHX1JFUExZEAgSEwoPT0ZQVF9TRVRfQ09ORklHEAkSEgoOT0ZQVF9QQUNLRVRfSU4QChIVChFPRlBUX0ZMT1dfUkVNT1ZFRBALEhQKEE9GUFRfUE9SVF9TVEFUVVMQDBITCg9PRlBUX1BBQ0tFVF9PVVQQDRIRCg1PRlBUX0ZMT1dfTU9EEA4SEgoOT0ZQVF9HUk9VUF9NT0QQDxIRCg1PRlBUX1BPUlRfTU9EEBASEgoOT0ZQVF9UQUJMRV9NT0QQERIaChZPRlBUX01VTFRJUEFSVF9SRVFVRVNUEBISGAoUT0ZQVF9NVUxUSVBBUlRfUkVQTFkQExIYChRPRlBUX0JBUlJJRVJfUkVRVUVTVBAUEhYKEk9GUFRfQkFSUklFUl9SRVBMWRAVEiEKHU9GUFRfUVVFVUVfR0VUX0NPTkZJR19SRVFVRVNUEBYSHwobT0ZQVF9RVUVVRV9HRVRfQ09ORklHX1JFUExZEBcSFQoRT0ZQVF9ST0xFX1JFUVVFU1QQGBITCg9PRlBUX1JPTEVfUkVQTFkQGRIaChZPRlBUX0dFVF9BU1lOQ19SRVFVRVNUEBoSGAoUT0ZQVF9HRVRfQVNZTkNfUkVQTFkQGxISCg5PRlBUX1NFVF9BU1lOQxAcEhIKDk9GUFRfTUVURVJfTU9EEB0qQwoTb2ZwX2hlbGxvX2VsZW1fdHlwZRISCg5PRlBIRVRfSU5WQUxJRBAAEhgKFE9GUEhFVF9WRVJTSU9OQklUTUFQEAEqZQoQb2ZwX2NvbmZpZ19mbGFncxIUChBPRlBDX0ZSQUdfTk9STUFMEAASEgoOT0ZQQ19GUkFHX0RST1AQARITCg9PRlBDX0ZSQUdfUkVBU00QAhISCg5PRlBDX0ZSQUdfTUFTSxADKkAKEG9mcF90YWJsZV9jb25maWcSEQoNT0ZQVENfSU5WQUxJRBAAEhkKFU9GUFRDX0RFUFJFQ0FURURfTUFTSxADKj4KCW9mcF90YWJsZRIRCg1PRlBUVF9JTlZBTElEEAASDgoJT0ZQVFRfTUFYEP4BEg4KCU9GUFRUX0FMTBD/ASq7AQoQb2ZwX2NhcGFiaWxpdGllcxIQCgxPRlBDX0lOVkFMSUQQABITCg9PRlBDX0ZMT1dfU1RBVFMQARIUChBPRlBDX1RBQkxFX1NUQVRTEAISEwoPT0ZQQ19QT1JUX1NUQVRTEAQSFAoQT0ZQQ19HUk9VUF9TVEFUUxAIEhEKDU9GUENfSVBfUkVBU00QIBIUChBPRlBDX1FVRVVFX1NUQVRTEEASFgoRT0ZQQ19QT1JUX0JMT0NLRUQQgAIqdgoPb2ZwX3BvcnRfY29uZmlnEhEKDU9GUFBDX0lOVkFMSUQQABITCg9PRlBQQ19QT1JUX0RPV04QARIRCg1PRlBQQ19OT19SRUNWEAQSEAoMT0ZQUENfTk9fRldEECASFgoST0ZQUENfTk9fUEFDS0VUX0lOEEAqWwoOb2ZwX3BvcnRfc3RhdGUSEQoNT0ZQUFNfSU5WQUxJRBAAEhMKD09GUFBTX0xJTktfRE9XThABEhEKDU9GUFBTX0JMT0NLRUQQAhIOCgpPRlBQU19MSVZFEAQq3QIKEW9mcF9wb3J0X2ZlYXR1cmVzEhEKDU9GUFBGX0lOVkFMSUQQABIRCg1PRlBQRl8xME1CX0hEEAESEQoNT0ZQUEZfMTBNQl9GRBACEhIKDk9GUFBGXzEwME1CX0hEEAQSEgoOT0ZQUEZfMTAwTUJfRkQQCBIQCgxPRlBQRl8xR0JfSEQQEBIQCgxPRlBQRl8xR0JfRkQQIBIRCg1PRlBQRl8xMEdCX0ZEEEASEgoNT0ZQUEZfNDBHQl9GRBCAARITCg5PRlBQRl8xMDBHQl9GRBCAAhIRCgxPRlBQRl8xVEJfRkQQgAQSEAoLT0ZQUEZfT1RIRVIQgAgSEQoMT0ZQUEZfQ09QUEVSEIAQEhAKC09GUFBGX0ZJQkVSEIAgEhIKDU9GUFBGX0FVVE9ORUcQgEASEQoLT0ZQUEZfUEFVU0UQgIABEhYKEE9GUFBGX1BBVVNFX0FTWU0QgIACKkQKD29mcF9wb3J0X3JlYXNvbhINCglPRlBQUl9BREQQABIQCgxPRlBQUl9ERUxFVEUQARIQCgxPRlBQUl9NT0RJRlkQAipGChVvZnBfZGV2aWNlX2Nvbm5lY3Rpb24SFAoQT0ZQREVWX0NPTk5FQ1RFRBAAEhcKE09GUERFVl9ESVNDT05ORUNURUQQASozCg5vZnBfbWF0Y2hfdHlwZRISCg5PRlBNVF9TVEFOREFSRBAAEg0KCU9GUE1UX09YTRABKmsKDW9mcF9veG1fY2xhc3MSEAoMT0ZQWE1DX05YTV8wEAASEAoMT0ZQWE1DX05YTV8xEAESGwoVT0ZQWE1DX09QRU5GTE9XX0JBU0lDEICAAhIZChNPRlBYTUNfRVhQRVJJTUVOVEVSEP//AyqQCAoTb3htX29mYl9maWVsZF90eXBlcxIWChJPRlBYTVRfT0ZCX0lOX1BPUlQQABIaChZPRlBYTVRfT0ZCX0lOX1BIWV9QT1JUEAESFwoTT0ZQWE1UX09GQl9NRVRBREFUQRACEhYKEk9GUFhNVF9PRkJfRVRIX0RTVBADEhYKEk9GUFhNVF9PRkJfRVRIX1NSQxAEEhcKE09GUFhNVF9PRkJfRVRIX1RZUEUQBRIXChNPRlBYTVRfT0ZCX1ZMQU5fVklEEAYSFwoTT0ZQWE1UX09GQl9WTEFOX1BDUBAHEhYKEk9GUFhNVF9PRkJfSVBfRFNDUBAIEhUKEU9GUFhNVF9PRkJfSVBfRUNOEAkSFwoTT0ZQWE1UX09GQl9JUF9QUk9UTxAKEhcKE09GUFhNVF9PRkJfSVBWNF9TUkMQCxIXChNPRlBYTVRfT0ZCX0lQVjRfRFNUEAwSFgoST0ZQWE1UX09GQl9UQ1BfU1JDEA0SFgoST0ZQWE1UX09GQl9UQ1BfRFNUEA4SFgoST0ZQWE1UX09GQl9VRFBfU1JDEA8SFgoST0ZQWE1UX09GQl9VRFBfRFNUEBASFwoTT0ZQWE1UX09GQl9TQ1RQX1NSQxAREhcKE09GUFhNVF9PRkJfU0NUUF9EU1QQEhIaChZPRlBYTVRfT0ZCX0lDTVBWNF9UWVBFEBMSGgoWT0ZQWE1UX09GQl9JQ01QVjRfQ09ERRAUEhUKEU9GUFhNVF9PRkJfQVJQX09QEBUSFgoST0ZQWE1UX09GQl9BUlBfU1BBEBYSFgoST0ZQWE1UX09GQl9BUlBfVFBBEBcSFgoST0ZQWE1UX09GQl9BUlBfU0hBEBgSFgoST0ZQWE1UX09GQl9BUlBfVEhBEBkSFwoTT0ZQWE1UX09GQl9JUFY2X1NSQxAaEhcKE09GUFhNVF9PRkJfSVBWNl9EU1QQGxIaChZPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMEBwSGgoWT0ZQWE1UX09GQl9JQ01QVjZfVFlQRRAdEhoKFk9GUFhNVF9PRkJfSUNNUFY2X0NPREUQHhIdChlPRlBYTVRfT0ZCX0lQVjZfTkRfVEFSR0VUEB8SGgoWT0ZQWE1UX09GQl9JUFY2X05EX1NMTBAgEhoKFk9GUFhNVF9PRkJfSVBWNl9ORF9UTEwQIRIZChVPRlBYTVRfT0ZCX01QTFNfTEFCRUwQIhIWChJPRlBYTVRfT0ZCX01QTFNfVEMQIxIXChNPRlBYTVRfT0ZCX01QTFNfQk9TECQSFwoTT0ZQWE1UX09GQl9QQkJfSVNJRBAlEhgKFE9GUFhNVF9PRkJfVFVOTkVMX0lEECYSGgoWT0ZQWE1UX09GQl9JUFY2X0VYVEhEUhAnKjMKC29mcF92bGFuX2lkEg8KC09GUFZJRF9OT05FEAASEwoOT0ZQVklEX1BSRVNFTlQQgCAqyQEKFG9mcF9pcHY2ZXh0aGRyX2ZsYWdzEhIKDk9GUElFSF9JTlZBTElEEAASEQoNT0ZQSUVIX05PTkVYVBABEg4KCk9GUElFSF9FU1AQAhIPCgtPRlBJRUhfQVVUSBAEEg8KC09GUElFSF9ERVNUEAgSDwoLT0ZQSUVIX0ZSQUcQEBIRCg1PRlBJRUhfUk9VVEVSECASDgoKT0ZQSUVIX0hPUBBAEhEKDE9GUElFSF9VTlJFUBCAARIRCgxPRlBJRUhfVU5TRVEQgAIq/AIKD29mcF9hY3Rpb25fdHlwZRIQCgxPRlBBVF9PVVRQVVQQABIWChJPRlBBVF9DT1BZX1RUTF9PVVQQCxIVChFPRlBBVF9DT1BZX1RUTF9JThAMEhYKEk9GUEFUX1NFVF9NUExTX1RUTBAPEhYKEk9GUEFUX0RFQ19NUExTX1RUTBAQEhMKD09GUEFUX1BVU0hfVkxBThAREhIKDk9GUEFUX1BPUF9WTEFOEBISEwoPT0ZQQVRfUFVTSF9NUExTEBMSEgoOT0ZQQVRfUE9QX01QTFMQFBITCg9PRlBBVF9TRVRfUVVFVUUQFRIPCgtPRlBBVF9HUk9VUBAWEhQKEE9GUEFUX1NFVF9OV19UVEwQFxIUChBPRlBBVF9ERUNfTldfVFRMEBgSEwoPT0ZQQVRfU0VUX0ZJRUxEEBkSEgoOT0ZQQVRfUFVTSF9QQkIQGhIRCg1PRlBBVF9QT1BfUEJCEBsSGAoST0ZQQVRfRVhQRVJJTUVOVEVSEP//AypWChZvZnBfY29udHJvbGxlcl9tYXhfbGVuEhIKDk9GUENNTF9JTlZBTElEEAASEAoKT0ZQQ01MX01BWBDl/wMSFgoQT0ZQQ01MX05PX0JVRkZFUhD//wMqzwEKFG9mcF9pbnN0cnVjdGlvbl90eXBlEhEKDU9GUElUX0lOVkFMSUQQABIUChBPRlBJVF9HT1RPX1RBQkxFEAESGAoUT0ZQSVRfV1JJVEVfTUVUQURBVEEQAhIXChNPRlBJVF9XUklURV9BQ1RJT05TEAMSFwoTT0ZQSVRfQVBQTFlfQUNUSU9OUxAEEhcKE09GUElUX0NMRUFSX0FDVElPTlMQBRIPCgtPRlBJVF9NRVRFUhAGEhgKEk9GUElUX0VYUEVSSU1FTlRFUhD//wMqewoUb2ZwX2Zsb3dfbW9kX2NvbW1hbmQSDQoJT0ZQRkNfQUREEAASEAoMT0ZQRkNfTU9ESUZZEAESFwoTT0ZQRkNfTU9ESUZZX1NUUklDVBACEhAKDE9GUEZDX0RFTEVURRADEhcKE09GUEZDX0RFTEVURV9TVFJJQ1QQBCqjAQoSb2ZwX2Zsb3dfbW9kX2ZsYWdzEhEKDU9GUEZGX0lOVkFMSUQQABIXChNPRlBGRl9TRU5EX0ZMT1dfUkVNEAESFwoTT0ZQRkZfQ0hFQ0tfT1ZFUkxBUBACEhYKEk9GUEZGX1JFU0VUX0NPVU5UUxAEEhcKE09GUEZGX05PX1BLVF9DT1VOVFMQCBIXChNPRlBGRl9OT19CWVRfQ09VTlRTEBAqUwoJb2ZwX2dyb3VwEhAKDE9GUEdfSU5WQUxJRBAAEhAKCE9GUEdfTUFYEID+//8HEhAKCE9GUEdfQUxMEPz///8HEhAKCE9GUEdfQU5ZEP////8HKkoKFW9mcF9ncm91cF9tb2RfY29tbWFuZBINCglPRlBHQ19BREQQABIQCgxPRlBHQ19NT0RJRlkQARIQCgxPRlBHQ19ERUxFVEUQAipTCg5vZnBfZ3JvdXBfdHlwZRINCglPRlBHVF9BTEwQABIQCgxPRlBHVF9TRUxFQ1QQARISCg5PRlBHVF9JTkRJUkVDVBACEgwKCE9GUEdUX0ZGEAMqUAoUb2ZwX3BhY2tldF9pbl9yZWFzb24SEQoNT0ZQUl9OT19NQVRDSBAAEg8KC09GUFJfQUNUSU9OEAESFAoQT0ZQUl9JTlZBTElEX1RUTBACKosBChdvZnBfZmxvd19yZW1vdmVkX3JlYXNvbhIWChJPRlBSUl9JRExFX1RJTUVPVVQQABIWChJPRlBSUl9IQVJEX1RJTUVPVVQQARIQCgxPRlBSUl9ERUxFVEUQAhIWChJPRlBSUl9HUk9VUF9ERUxFVEUQAxIWChJPRlBSUl9NRVRFUl9ERUxFVEUQBCpuCglvZnBfbWV0ZXISDQoJT0ZQTV9aRVJPEAASEAoIT0ZQTV9NQVgQgID8/wcSFQoNT0ZQTV9TTE9XUEFUSBD9////BxIXCg9PRlBNX0NPTlRST0xMRVIQ/v///wcSEAoIT0ZQTV9BTEwQ/////wcqbQoTb2ZwX21ldGVyX2JhbmRfdHlwZRISCg5PRlBNQlRfSU5WQUxJRBAAEg8KC09GUE1CVF9EUk9QEAESFgoST0ZQTUJUX0RTQ1BfUkVNQVJLEAISGQoTT0ZQTUJUX0VYUEVSSU1FTlRFUhD//wMqSgoVb2ZwX21ldGVyX21vZF9jb21tYW5kEg0KCU9GUE1DX0FERBAAEhAKDE9GUE1DX01PRElGWRABEhAKDE9GUE1DX0RFTEVURRACKmcKD29mcF9tZXRlcl9mbGFncxIRCg1PRlBNRl9JTlZBTElEEAASDgoKT0ZQTUZfS0JQUxABEg8KC09GUE1GX1BLVFBTEAISDwoLT0ZQTUZfQlVSU1QQBBIPCgtPRlBNRl9TVEFUUxAIKqQDCg5vZnBfZXJyb3JfdHlwZRIWChJPRlBFVF9IRUxMT19GQUlMRUQQABIVChFPRlBFVF9CQURfUkVRVUVTVBABEhQKEE9GUEVUX0JBRF9BQ1RJT04QAhIZChVPRlBFVF9CQURfSU5TVFJVQ1RJT04QAxITCg9PRlBFVF9CQURfTUFUQ0gQBBIZChVPRlBFVF9GTE9XX01PRF9GQUlMRUQQBRIaChZPRlBFVF9HUk9VUF9NT0RfRkFJTEVEEAYSGQoVT0ZQRVRfUE9SVF9NT0RfRkFJTEVEEAcSGgoWT0ZQRVRfVEFCTEVfTU9EX0ZBSUxFRBAIEhkKFU9GUEVUX1FVRVVFX09QX0ZBSUxFRBAJEh4KGk9GUEVUX1NXSVRDSF9DT05GSUdfRkFJTEVEEAoSHQoZT0ZQRVRfUk9MRV9SRVFVRVNUX0ZBSUxFRBALEhoKFk9GUEVUX01FVEVSX01PRF9GQUlMRUQQDBIfChtPRlBFVF9UQUJMRV9GRUFUVVJFU19GQUlMRUQQDRIYChJPRlBFVF9FWFBFUklNRU5URVIQ//8DKkIKFW9mcF9oZWxsb19mYWlsZWRfY29kZRIXChNPRlBIRkNfSU5DT01QQVRJQkxFEAASEAoMT0ZQSEZDX0VQRVJNEAEq7QIKFG9mcF9iYWRfcmVxdWVzdF9jb2RlEhYKEk9GUEJSQ19CQURfVkVSU0lPThAAEhMKD09GUEJSQ19CQURfVFlQRRABEhgKFE9GUEJSQ19CQURfTVVMVElQQVJUEAISGwoXT0ZQQlJDX0JBRF9FWFBFUklNRU5URVIQAxIXChNPRlBCUkNfQkFEX0VYUF9UWVBFEAQSEAoMT0ZQQlJDX0VQRVJNEAUSEgoOT0ZQQlJDX0JBRF9MRU4QBhIXChNPRlBCUkNfQlVGRkVSX0VNUFRZEAcSGQoVT0ZQQlJDX0JVRkZFUl9VTktOT1dOEAgSFwoTT0ZQQlJDX0JBRF9UQUJMRV9JRBAJEhMKD09GUEJSQ19JU19TTEFWRRAKEhMKD09GUEJSQ19CQURfUE9SVBALEhUKEU9GUEJSQ19CQURfUEFDS0VUEAwSJAogT0ZQQlJDX01VTFRJUEFSVF9CVUZGRVJfT1ZFUkZMT1cQDSqcAwoTb2ZwX2JhZF9hY3Rpb25fY29kZRITCg9PRlBCQUNfQkFEX1RZUEUQABISCg5PRlBCQUNfQkFEX0xFThABEhsKF09GUEJBQ19CQURfRVhQRVJJTUVOVEVSEAISFwoTT0ZQQkFDX0JBRF9FWFBfVFlQRRADEhcKE09GUEJBQ19CQURfT1VUX1BPUlQQBBIXChNPRlBCQUNfQkFEX0FSR1VNRU5UEAUSEAoMT0ZQQkFDX0VQRVJNEAYSEwoPT0ZQQkFDX1RPT19NQU5ZEAcSFAoQT0ZQQkFDX0JBRF9RVUVVRRAIEhgKFE9GUEJBQ19CQURfT1VUX0dST1VQEAkSHQoZT0ZQQkFDX01BVENIX0lOQ09OU0lTVEVOVBAKEhwKGE9GUEJBQ19VTlNVUFBPUlRFRF9PUkRFUhALEhIKDk9GUEJBQ19CQURfVEFHEAwSFwoTT0ZQQkFDX0JBRF9TRVRfVFlQRRANEhYKEk9GUEJBQ19CQURfU0VUX0xFThAOEhsKF09GUEJBQ19CQURfU0VUX0FSR1VNRU5UEA8q+gEKGG9mcF9iYWRfaW5zdHJ1Y3Rpb25fY29kZRIXChNPRlBCSUNfVU5LTk9XTl9JTlNUEAASFQoRT0ZQQklDX1VOU1VQX0lOU1QQARIXChNPRlBCSUNfQkFEX1RBQkxFX0lEEAISGQoVT0ZQQklDX1VOU1VQX01FVEFEQVRBEAMSHgoaT0ZQQklDX1VOU1VQX01FVEFEQVRBX01BU0sQBBIbChdPRlBCSUNfQkFEX0VYUEVSSU1FTlRFUhAFEhcKE09GUEJJQ19CQURfRVhQX1RZUEUQBhISCg5PRlBCSUNfQkFEX0xFThAHEhAKDE9GUEJJQ19FUEVSTRAIKqUCChJvZnBfYmFkX21hdGNoX2NvZGUSEwoPT0ZQQk1DX0JBRF9UWVBFEAASEgoOT0ZQQk1DX0JBRF9MRU4QARISCg5PRlBCTUNfQkFEX1RBRxACEhsKF09GUEJNQ19CQURfRExfQUREUl9NQVNLEAMSGwoXT0ZQQk1DX0JBRF9OV19BRERSX01BU0sQBBIYChRPRlBCTUNfQkFEX1dJTERDQVJEUxAFEhQKEE9GUEJNQ19CQURfRklFTEQQBhIUChBPRlBCTUNfQkFEX1ZBTFVFEAcSEwoPT0ZQQk1DX0JBRF9NQVNLEAgSFQoRT0ZQQk1DX0JBRF9QUkVSRVEQCRIUChBPRlBCTUNfRFVQX0ZJRUxEEAoSEAoMT0ZQQk1DX0VQRVJNEAsq0gEKGG9mcF9mbG93X21vZF9mYWlsZWRfY29kZRITCg9PRlBGTUZDX1VOS05PV04QABIWChJPRlBGTUZDX1RBQkxFX0ZVTEwQARIYChRPRlBGTUZDX0JBRF9UQUJMRV9JRBACEhMKD09GUEZNRkNfT1ZFUkxBUBADEhEKDU9GUEZNRkNfRVBFUk0QBBIXChNPRlBGTUZDX0JBRF9USU1FT1VUEAUSFwoTT0ZQRk1GQ19CQURfQ09NTUFORBAGEhUKEU9GUEZNRkNfQkFEX0ZMQUdTEAcqoQMKGW9mcF9ncm91cF9tb2RfZmFpbGVkX2NvZGUSGAoUT0ZQR01GQ19HUk9VUF9FWElTVFMQABIZChVPRlBHTUZDX0lOVkFMSURfR1JPVVAQARIeChpPRlBHTUZDX1dFSUdIVF9VTlNVUFBPUlRFRBACEhkKFU9GUEdNRkNfT1VUX09GX0dST1VQUxADEhoKFk9GUEdNRkNfT1VUX09GX0JVQ0tFVFMQBBIgChxPRlBHTUZDX0NIQUlOSU5HX1VOU1VQUE9SVEVEEAUSHQoZT0ZQR01GQ19XQVRDSF9VTlNVUFBPUlRFRBAGEhAKDE9GUEdNRkNfTE9PUBAHEhkKFU9GUEdNRkNfVU5LTk9XTl9HUk9VUBAIEhkKFU9GUEdNRkNfQ0hBSU5FRF9HUk9VUBAJEhQKEE9GUEdNRkNfQkFEX1RZUEUQChIXChNPRlBHTUZDX0JBRF9DT01NQU5EEAsSFgoST0ZQR01GQ19CQURfQlVDS0VUEAwSFQoRT0ZQR01GQ19CQURfV0FUQ0gQDRIRCg1PRlBHTUZDX0VQRVJNEA4qjwEKGG9mcF9wb3J0X21vZF9mYWlsZWRfY29kZRIUChBPRlBQTUZDX0JBRF9QT1JUEAASFwoTT0ZQUE1GQ19CQURfSFdfQUREUhABEhYKEk9GUFBNRkNfQkFEX0NPTkZJRxACEhkKFU9GUFBNRkNfQkFEX0FEVkVSVElTRRADEhEKDU9GUFBNRkNfRVBFUk0QBCpdChlvZnBfdGFibGVfbW9kX2ZhaWxlZF9jb2RlEhUKEU9GUFRNRkNfQkFEX1RBQkxFEAASFgoST0ZQVE1GQ19CQURfQ09ORklHEAESEQoNT0ZQVE1GQ19FUEVSTRACKloKGG9mcF9xdWV1ZV9vcF9mYWlsZWRfY29kZRIUChBPRlBRT0ZDX0JBRF9QT1JUEAASFQoRT0ZQUU9GQ19CQURfUVVFVUUQARIRCg1PRlBRT0ZDX0VQRVJNEAIqXgodb2ZwX3N3aXRjaF9jb25maWdfZmFpbGVkX2NvZGUSFQoRT0ZQU0NGQ19CQURfRkxBR1MQABITCg9PRlBTQ0ZDX0JBRF9MRU4QARIRCg1PRlBTQ0ZDX0VQRVJNEAIqWgocb2ZwX3JvbGVfcmVxdWVzdF9mYWlsZWRfY29kZRIRCg1PRlBSUkZDX1NUQUxFEAASEQoNT0ZQUlJGQ19VTlNVUBABEhQKEE9GUFJSRkNfQkFEX1JPTEUQAirFAgoZb2ZwX21ldGVyX21vZF9mYWlsZWRfY29kZRITCg9PRlBNTUZDX1VOS05PV04QABIYChRPRlBNTUZDX01FVEVSX0VYSVNUUxABEhkKFU9GUE1NRkNfSU5WQUxJRF9NRVRFUhACEhkKFU9GUE1NRkNfVU5LTk9XTl9NRVRFUhADEhcKE09GUE1NRkNfQkFEX0NPTU1BTkQQBBIVChFPRlBNTUZDX0JBRF9GTEFHUxAFEhQKEE9GUE1NRkNfQkFEX1JBVEUQBhIVChFPRlBNTUZDX0JBRF9CVVJTVBAHEhQKEE9GUE1NRkNfQkFEX0JBTkQQCBIbChdPRlBNTUZDX0JBRF9CQU5EX0RFVEFJTBAJEhkKFU9GUE1NRkNfT1VUX09GX01FVEVSUxAKEhgKFE9GUE1NRkNfT1VUX09GX0JBTkRTEAsqqQEKHm9mcF90YWJsZV9mZWF0dXJlc19mYWlsZWRfY29kZRIVChFPRlBURkZDX0JBRF9UQUJMRRAAEhgKFE9GUFRGRkNfQkFEX01FVEFEQVRBEAESFAoQT0ZQVEZGQ19CQURfVFlQRRACEhMKD09GUFRGRkNfQkFEX0xFThADEhgKFE9GUFRGRkNfQkFEX0FSR1VNRU5UEAQSEQoNT0ZQVEZGQ19FUEVSTRAFKs4CChJvZnBfbXVsdGlwYXJ0X3R5cGUSDgoKT0ZQTVBfREVTQxAAEg4KCk9GUE1QX0ZMT1cQARITCg9PRlBNUF9BR0dSRUdBVEUQAhIPCgtPRlBNUF9UQUJMRRADEhQKEE9GUE1QX1BPUlRfU1RBVFMQBBIPCgtPRlBNUF9RVUVVRRAFEg8KC09GUE1QX0dST1VQEAYSFAoQT0ZQTVBfR1JPVVBfREVTQxAHEhgKFE9GUE1QX0dST1VQX0ZFQVRVUkVTEAgSDwoLT0ZQTVBfTUVURVIQCRIWChJPRlBNUF9NRVRFUl9DT05GSUcQChIYChRPRlBNUF9NRVRFUl9GRUFUVVJFUxALEhgKFE9GUE1QX1RBQkxFX0ZFQVRVUkVTEAwSEwoPT0ZQTVBfUE9SVF9ERVNDEA0SGAoST0ZQTVBfRVhQRVJJTUVOVEVSEP//AypKChtvZnBfbXVsdGlwYXJ0X3JlcXVlc3RfZmxhZ3MSFgoST0ZQTVBGX1JFUV9JTlZBTElEEAASEwoPT0ZQTVBGX1JFUV9NT1JFEAEqTAoZb2ZwX211bHRpcGFydF9yZXBseV9mbGFncxIYChRPRlBNUEZfUkVQTFlfSU5WQUxJRBAAEhUKEU9GUE1QRl9SRVBMWV9NT1JFEAEq5AMKG29mcF90YWJsZV9mZWF0dXJlX3Byb3BfdHlwZRIYChRPRlBURlBUX0lOU1RSVUNUSU9OUxAAEh0KGU9GUFRGUFRfSU5TVFJVQ1RJT05TX01JU1MQARIXChNPRlBURlBUX05FWFRfVEFCTEVTEAISHAoYT0ZQVEZQVF9ORVhUX1RBQkxFU19NSVNTEAMSGQoVT0ZQVEZQVF9XUklURV9BQ1RJT05TEAQSHgoaT0ZQVEZQVF9XUklURV9BQ1RJT05TX01JU1MQBRIZChVPRlBURlBUX0FQUExZX0FDVElPTlMQBhIeChpPRlBURlBUX0FQUExZX0FDVElPTlNfTUlTUxAHEhEKDU9GUFRGUFRfTUFUQ0gQCBIVChFPRlBURlBUX1dJTERDQVJEUxAKEhoKFk9GUFRGUFRfV1JJVEVfU0VURklFTEQQDBIfChtPRlBURlBUX1dSSVRFX1NFVEZJRUxEX01JU1MQDRIaChZPRlBURlBUX0FQUExZX1NFVEZJRUxEEA4SHwobT0ZQVEZQVF9BUFBMWV9TRVRGSUVMRF9NSVNTEA8SGgoUT0ZQVEZQVF9FWFBFUklNRU5URVIQ/v8DEh8KGU9GUFRGUFRfRVhQRVJJTUVOVEVSX01JU1MQ//8DKpMBChZvZnBfZ3JvdXBfY2FwYWJpbGl0aWVzEhIKDk9GUEdGQ19JTlZBTElEEAASGAoUT0ZQR0ZDX1NFTEVDVF9XRUlHSFQQARIaChZPRlBHRkNfU0VMRUNUX0xJVkVORVNTEAISEwoPT0ZQR0ZDX0NIQUlOSU5HEAQSGgoWT0ZQR0ZDX0NIQUlOSU5HX0NIRUNLUxAIKmsKFG9mcF9xdWV1ZV9wcm9wZXJ0aWVzEhEKDU9GUFFUX0lOVkFMSUQQABISCg5PRlBRVF9NSU5fUkFURRABEhIKDk9GUFFUX01BWF9SQVRFEAISGAoST0ZQUVRfRVhQRVJJTUVOVEVSEP//AypxChNvZnBfY29udHJvbGxlcl9yb2xlEhcKE09GUENSX1JPTEVfTk9DSEFOR0UQABIUChBPRlBDUl9ST0xFX0VRVUFMEAESFQoRT0ZQQ1JfUk9MRV9NQVNURVIQAhIUChBPRlBDUl9ST0xFX1NMQVZFEANCVQoeb3JnLm9wZW5jb3JkLnZvbHRoYS5vcGVuZmxvdzEzWjNnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vb3BlbmZsb3dfMTNKlboGCgcSBTkAmRIBCuQUCgEMEgM5ABIa+QYKIFRoaXMgaXMgYSByZWxhdGl2ZWx5IHN0cmFpZ2h0Zm9yd2FyZCByZW5kZXJpbmcgb2YgT3BlbkZsb3cgbWVzc2FnZQogZGVmaW5pdGlvbnMgaW50byBwcm90b2NvbCBidWZmZXIgbWVzc2FnZXMuIFdlIHByZXNlcnZlZCB0aGUgc25ha2UKIGNhc2Ugc3ludGF4LCBhbmQgbWFkZSB0aGUgZm9sbG93aW5nIGNoYW5nZXM6CiAtIGFsbCBwYWQgZmllbGRzIGRyb3BwZWQKIC0gZm9yIGVhY2ggZW51bSB2YWx1ZSBhYm92ZSAweDdmZmZmZmZmIHRoZSBNU0IgaXMgZHJvcHBlZC4gRm9yIGV4YW1wbGUsCiAgIDB4ZmZmZmZmZmYgaXMgbm93IDB4N2ZmZmZmZmYuCiAtICc8dHlwZT4gdGhpbmdbLi4uXScgaXMgcmVwbGFjZWQgd2l0aCAncmVwZWF0ZWQgPHR5cGU+IHRoaW5nJwogLSAnY2hhciB0aGluZ1suLi5dJyBpcyByZXBsYWNlZCB3aXRoICdzdHJpbmcgdGhpbmcnCiAtICd1aW50OF90IGRhdGFbLi4uXScgaXMgcmVwbGFjZWQgd2l0aCAnYnl0ZXMgZGF0YScKIC0gdGhlIGZvbGxvd2luZyBzeXN0ZW1hdGljIGNoYW5nZXMgYXJlIGRvbmUgdG8gdmFyaW91cyBpbnRlZ2VyIHR5cGVzOgogICB1aW50OF90ICAtPiB1aW50MzIKICAgdWludDE2X3QgLT4gdWludDMyCiAgIHVpbnQzMl90IC0+IHVpbnQzMgogICB1aW50NjRfdCAtPiB1aW50NjQKIC0gcmVtb3ZlZCBtb3N0IGxlbmd0aCwgbGVuLCBzaXplIGZpZWxkcyB3aGVyZSB0aGVzZSB2YWx1ZXMgY2FuIGJlIGRldGVybWluZWQKICAgZnJvbSB0aGUgZXhwbGljaXRseSBlbmNvZGVkIGxlbmd0aCBvZiAicmVwZWF0ZWQiIHByb3RvYnVmIGZpZWxkcy4KIC0gZXhwbGljaXQgdXNlIG9mIGVudW0gdHlwZXMgd2hlcmVldmVyIGl0IGlzIHVuYW1iaWdvdXMgKGFuZCBub3QgdXNlZCBhcwogICBiaXRtYXNrL2ZsYWdzIHZhbHVlLgoKMqYNIENvcHlyaWdodCAoYykgMjAwOCBUaGUgQm9hcmQgb2YgVHJ1c3RlZXMgb2YgVGhlIExlbGFuZCBTdGFuZm9yZAogSnVuaW9yIFVuaXZlcnNpdHkKIENvcHlyaWdodCAoYykgMjAxMSwgMjAxMiBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbgoKIFdlIGFyZSBtYWtpbmcgdGhlIE9wZW5GbG93IHNwZWNpZmljYXRpb24gYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgogKFNvZnR3YXJlKSBhdmFpbGFibGUgZm9yIHB1YmxpYyB1c2UgYW5kIGJlbmVmaXQgd2l0aCB0aGUgZXhwZWN0YXRpb24KIHRoYXQgb3RoZXJzIHdpbGwgdXNlLCBtb2RpZnkgYW5kIGVuaGFuY2UgdGhlIFNvZnR3YXJlIGFuZCBjb250cmlidXRlCiB0aG9zZSBlbmhhbmNlbWVudHMgYmFjayB0byB0aGUgY29tbXVuaXR5LiBIb3dldmVyLCBzaW5jZSB3ZSB3b3VsZAogbGlrZSB0byBtYWtlIHRoZSBTb2Z0d2FyZSBhdmFpbGFibGUgZm9yIGJyb2FkZXN0IHVzZSwgd2l0aCBhcyBmZXcKIHJlc3RyaWN0aW9ucyBhcyBwb3NzaWJsZSBwZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mCiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIFNvZnR3YXJlIHRvIGRlYWwgaW4KIHRoZSBTb2Z0d2FyZSB1bmRlciB0aGUgY29weXJpZ2h0cyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAogTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKIFNPRlRXQVJFLgoKIFRoZSBuYW1lIGFuZCB0cmFkZW1hcmtzIG9mIGNvcHlyaWdodCBob2xkZXIocykgbWF5IE5PVCBiZSB1c2VkIGluCiBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byB0aGUgU29mdHdhcmUgb3IgYW55CiBkZXJpdmF0aXZlcyB3aXRob3V0IHNwZWNpZmljLCB3cml0dGVuIHByaW9yIHBlcm1pc3Npb24uCjI1IE9wZW5GbG93OiBwcm90b2NvbCBi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IEZpZWxkcyB0byBtYXRjaCBhZ2FpbnN0IGZsb3dzIAoLCgMECwESBIwDCBEKHgoEBAsCABIEjQMEHCIQIE9uZSBvZiBPRlBNVF8qIAoPCgUECwIABBIGjQMEjAMTCg0KBQQLAgAGEgSNAwQSCg0KBQQLAgABEgSNAxMXCg0KBQQLAgADEgSNAxobChkKBAQLAgESBI4DBCoiCyAwIG9yIG1vcmUgCg0KBQQLAgEEEgSOAwQMCg0KBQQLAgEGEgSOAw0aCg0KBQQLAgEBEgSOAxslCg0KBQQLAgEDEgSOAygpCrcICgIFDRIGqAMArQMBGuYBIE9YTSBDbGFzcyBJRHMuCiBUaGUgaGlnaCBvcmRlciBiaXQgZGlmZmVyZW50aWF0ZSByZXNlcnZlZCBjbGFzc2VzIGZyb20gbWVtYmVyIGNsYXNzZXMuCiBDbGFzc2VzIDB4MDAwMCB0byAweDdGRkYgYXJlIG1lbWJlciBjbGFzc2VzLCBhbGxvY2F0ZWQgYnkgT05GLgogQ2xhc3NlcyAweDgwMDAgdG8gMHhGRkZFIGFyZSByZXNlcnZlZCBjbGFzc2VzLCByZXNlcnZlZCBmb3Igc3RhbmRhcmRpc2F0aW9uLgoyqQEgQ29tcG9uZW50cyBvZiBhIE9YTSBUTFYgaGVhZGVyLgogVGhvc2UgbWFjcm9zIGFyZSBub3QgdmFsaWQgZm9yIHRoZSBleHBlcmltZW50ZXIgY2xhc3MsIG1hY3JvcyBmb3IgdGhlCiBleHBlcmltZW50ZXIgY2xhc3Mgd2lsbCBkZXBlbmQgb24gdGhlIGV4cGVyaW1lbnRlciBoZWFkZXIgdXNlZC4gMpMFI2RlZmluZSBPWE1fSEVBREVSX18oQ0xBU1MsIEZJRUxELCBIQVNNQVNLLCBMRU5HVEgpIFwKICAgICgoKENMQVNTKSA8PCAxNikgfCAoKEZJRUxEKSA8PCA5KSB8ICgoSEFTTUFTSykgPDwgOCkgfCAoTEVOR1RIKSkKI2RlZmluZSBPWE1fSEVBREVSKENMQVNTLCBGSUVMRCwgTEVOR1RIKSBcCiAgICBPWE1fSEVBREVSX18oQ0xBU1MsIEZJRUxELCAwLCBMRU5HVEgpCiNkZWZpbmUgT1hNX0hFQURFUl9XKENMQVNTLCBGSUVMRCwgTEVOR1RIKSBcCiAgICBPWE1fSEVBREVSX18oQ0xBU1MsIEZJRUxELCAxLCAoTEVOR1RIKSAqIDIpCiNkZWZpbmUgT1hNX0NMQVNTKEhFQURFUikgKChIRUFERVIpID4+IDE2KQojZGVmaW5lIE9YTV9GSUVMRChIRUFERVIpICgoKEhFQURFUikgPj4gOSkgJiAweDdmKQojZGVmaW5lIE9YTV9UWVBFKEhFQURFUikgKCgoSEVBREVSKSA+PiA5KSAmIDB4N2ZmZmZmKQojZGVmaW5lIE9YTV9IQVNNQVNLKEhFQURFUikgKCgoSEVBREVSKSA+PiA4KSAmIDEpCiNkZWZpbmUgT1hNX0xFTkdUSChIRUFERVIpICgoSEVBREVSKSAmIDB4ZmYpCgojZGVmaW5lIE9YTV9NQUtFX1dJTERfSEVBREVSKEhFQURFUikgXAogICAgT1hNX0hFQURFUl9XKE9YTV9DTEFTUyhIRUFERVIpLCBPWE1fRklFTEQoSEVBREVSKSwgT1hNX0xFTkdUSChIRUFERVIpKQoKCwoDBQ0BEgSoAwUSCi8KBAUNAgASBKkDBCMiISBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggTlhNIAoNCgUFDQIAARIEqQMEEAoNCgUFDQIAAhIEqQMcIgovCgQFDQIBEgSqAwQjIiEgQmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIE5YTSAKDQoFBQ0CAQESBKoDBBAKDQoFBQ0CAQISBKoDHCIKKAoEBQ0CAhIEqwMEIyIaIEJhc2ljIGNsYXNzIGZvciBPcGVuRmxvdyAKDQoFBQ0CAgESBKsDBBkKDQoFBQ0CAgISBKsDHCIKIgoEBQ0CAxIErAMEIyIUIEV4cGVyaW1lbnRlciBjbGFzcyAKDQoFBQ0CAwESBKwDBBcKDQoFBQ0CAwISBKwDHCIKPgoCBQ4SBrADANkDARowIE9YTSBGbG93IGZpZWxkIHR5cGVzIGZvciBPcGVuRmxvdyBiYXNpYyBjbGFzcy4gCgsKAwUOARIEsAMFGAoiCgQFDgIAEgSxAwQiIhQgU3dpdGNoIGlucHV0IHBvcnQuIAoNCgUFDgIAARIEsQMEFgoNCgUFDgIAAhIEsQMgIQorCgQFDgIBEgSyAwQiIh0gU3dpdGNoIHBoeXNpY2FsIGlucHV0IHBvcnQuIAoNCgUFDgIBARIEsgMEGgoNCgUFDgIBAhIEsgMgIQovCgQFDgICEgSzAwQiIiEgTWV0YWRhdGEgcGFzc2VkIGJldHdlZW4gdGFibGVzLiAKDQoFBQ4CAgESBLMDBBcKDQoFBQ4CAgISBLMDICEKLQoEBQ4CAxIEtAMEIiIfIEV0aGVybmV0IGRlc3RpbmF0aW9uIGFkZHJlc3MuIAoNCgUFDgIDARIEtAMEFgoNCgUFDgIDAhIEtAMgIQooCgQFDgIEEgS1AwQiIhogRXRoZXJuZXQgc291cmNlIGFkZHJlc3MuIAoNCgUFDgIEARIEtQMEFgoNCgUFDgIEAhIEtQMgIQokCgQFDgIFEgS2AwQiIhYgRXRoZXJuZXQgZnJhbWUgdHlwZS4gCg0KBQUOAgUBEgS2AwQXCg0KBQUOAgUCEgS2AyAhChgKBAUOAgYSBLcDBCIiCiBWTEFOIGlkLiAKDQoFBQ4CBgESBLcDBBcKDQoFBQ4CBgISBLcDICEKHgoEBQ4CBxIEuAMEIiIQIFZMQU4gcHJpb3JpdHkuIAoNCgUFDgIHARIEuAMEFwoNCgUFDgIHAhIEuAMgIQouCgQFDgIIEgS5AwQiIiAgSVAgRFNDUCAoNiBiaXRzIGluIFRvUyBmaWVsZCkuIAoNCgUFDgIIARIEuQMEFgoNCgUFDgIIAhIEuQMgIQotCgQFDgIJEgS6AwQiIh8gSVAgRUNOICgyIGJpdHMgaW4gVG9TIGZpZWxkKS4gCg0KBQUOAgkBEgS6AwQVCg0KBQUOAgkCEgS6AyAhChwKBAUOAgoSBLsDBCMiDiBJUCBwcm90b2NvbC4gCg0KBQUOAgoBEgS7AwQXCg0KBQUOAgoCEgS7AyAiCiQKBAUOAgsSBLwDBCMiFiBJUHY0IHNvdXJjZSBhZGRyZXNzLiAKDQoFBQ4CCwESBLwDBBcKDQoFBQ4CCwISBLwDICIKKQoEBQ4CDBIEvQMEIyIbIElQdjQgZGVzdGluYXRpb24gYWRkcmVzcy4gCg0KBQUOAgwBEgS9AwQXCg0KBQUOAgwCEgS9AyAiCiAKBAUOAg0SBL4DBCMiEiBUQ1Agc291cmNlIHBvcnQuIAoNCgUFDgINARIEvgMEFgoNCgUFDgINAhIEvgMgIgolCgQFDgIOEgS/AwQjIhcgVENQIGRlc3RpbmF0aW9uIHBvcnQuIAoNCgUFDgIOARIEvwMEFgoNCgUFDgIOAhIEvwMgIgogCgQFDgIPEgTAAwQjIhIgVURQIHNvdXJjZSBwb3J0LiAKDQoFBQ4CDwESBMADBBYKDQoFBQ4CDwISBMADICIKJQoEBQ4CEBIEwQMEIyIXIFVEUCBkZXN0aW5hdGlvbiBwb3J0LiAKDQoFBQ4CEAESBMEDBBYKDQoFBQ4CEAISBMEDICIKIQoEBQ4CERIEwgMEIyITIFNDVFAgc291cmNlIHBvcnQuIAoNCgUFDgIRARIEwgMEFwoNCgUFDgIRAhIEwgMgIgomCgQFDgISEgTDAwQjIhggU0NUUCBkZXN0aW5hdGlvbiBwb3J0LiAKDQoFBQ4CEgESBMMDBBcKDQoFBQ4CEgISBMMDICIKGgoEBQ4CExIExAMEIyIMIElDTVAgdHlwZS4gCg0KBQUOAhMBEgTEAwQaCg0KBQUOAhMCEgTEAyAiChoKBAUOAhQSBMUDBCMiDCBJQ01QIGNvZGUuIAoNCgUFDgIUARIExQMEGgoNCgUFDgIUAhIExQMgIgobCgQFDgIVEgTGAwQjIg0gQVJQIG9wY29kZS4gCg0KBQUOAhUBEgTGAwQVCg0KBQUOAhUCEgTGAyAiCigKBAUOAhYSBMcDBCMiGiBBUlAgc291cmNlIElQdjQgYWRkcmVzcy4gCg0KBQUOAhYBEgTHAwQWCg0KBQUOAhYCEgTHAyAiCigKBAUOAhcSBMgDBCMiGiBBUlAgdGFyZ2V0IElQdjQgYWRkcmVzcy4gCg0KBQUOAhcBEgTIAwQWCg0KBQUOAhcCEgTIAyAiCiwKBAUOAhgSBMkDBCMiHiBBUlAgc291cmNlIGhhcmR3YXJlIGFkZHJlc3MuIAoNCgUFDgIYARIEyQMEFgoNCgUFDgIYAhIEyQMgIgosCgQFDgIZEgTKAwQjIh4gQVJQIHRhcmdldCBoYXJkd2FyZSBhZGRyZXNzLiAKDQoFBQ4CGQESBMoDBBYKDQoFBQ4CGQISBMoDICIKJAoEBQ4CGhIEywMEIyIWIElQdjYgc291cmNlIGFkZHJlc3MuIAoNCgUFDgIaARIEywMEFwoNCgUFDgIaAhIEywMgIgopCgQFDgIbEgTMAwQjIhsgSVB2NiBkZXN0aW5hdGlvbiBhZGRyZXNzLiAKDQoFBQ4CGwESBMwDBBcKDQoFBQ4CGwISBMwDICIKHwoEBQ4CHBIEzQMEIyIRIElQdjYgRmxvdyBMYWJlbCAKDQoFBQ4CHAESBM0DBBoKDQoFBQ4CHAISBM0DICIKHAoEBQ4CHRIEzgMEIyIOIElDTVB2NiB0eXBlLiAKDQoFBQ4CHQESBM4DBBoKDQoFBQ4CHQISBM4DICIKHAoEBQ4CHhIEzwMEIyIOIElDTVB2NiBjb2RlLiAKDQoFBQ4CHgESBM8DBBoKDQoFBQ4CHgISBM8DICIKJgoEBQ4CHxIE0AMEIyIYIFRhcmdldCBhZGRyZXNzIGZvciBORC4gCg0KBQUOAh8BEgTQAwQdCg0KBQUOAh8CEgTQAyAiCikKBAUOAiASBNEDBCMiGyBTb3VyY2UgbGluay1sYXllciBmb3IgTkQuIAoNCgUFDgIgARIE0QMEGgoNCgUFDgIgAhIE0QMgIgopCgQFDgIhEgTSAwQjIhsgVGFyZ2V0IGxpbmstbGF5ZXIgZm9yIE5ELiAKDQoFBQ4CIQESBNIDBBoKDQoFBQ4CIQISBNIDICIKGwoEBQ4CIhIE0wMEIyINIE1QTFMgbGFiZWwuIAoNCgUFDgIiARIE0wMEGQoNCgUFDgIiAhIE0wMgIgoYCgQFDgIjEgTUAwQjIgogTVBMUyBUQy4gCg0KBQUOAiMBEgTUAwQWCg0KBQUOAiMCEgTUAyAiCh0KBAUOAiQSBNUDBCMiDyBNUExTIEJvUyBiaXQuIAoNCgUFDgIkARIE1QMEFwoNCgUFDgIkAhIE1QMgIgoaCgQFDgIlEgTWAwQjIgwgUEJCIEktU0lELiAKDQoFBQ4CJQESBNYDBBcKDQoFBQ4CJQISBNYDICIKJgoEBQ4CJhIE1wMEIyIYIExvZ2ljYWwgUG9ydCBNZXRhZGF0YS4gCg0KBQUOAiYBEgTXAwQYCg0KBQUOAiYCEgTXAyAiCjIKBAUOAicSBNgDBCMiJCBJUHY2IEV4dGVuc2lvbiBIZWFkZXIgcHNldWRvLWZpZWxkIAoNCgUFDgInARIE2AMEGgoNCgUFDgInAhIE2AMgIgolCgIEDBIG3AMA4wMBGhcgT1hNIEZsb3cgbWF0Y2ggZmllbGRzIAoLCgMEDAESBNwDCBUKDAoEBAwCABIE3QMEIAoPCgUEDAIABBIG3QME3AMXCg0KBQQMAgAGEgTdAwQRCg0KBQQMAgABEgTdAxIbCg0KBQQMAgADEgTdAx4fCg4KBAQMCAASBt4DBOIDBQoNCgUEDAgAARIE3gMKDwpACgQEDAIBEgTgAwgoGjIgMiBhbmQgMyByZXNlcnZlZCBmb3IgTlhNXzAgYW5kIE5YTS0xIE9YTSBjbGFzc2VzIAoNCgUEDAIBBhIE4AMIGQoNCgUEDAIBARIE4AMaIwoNCgUEDAIBAxIE4AMmJwoMCgQEDAICEgThAwg6Cg0KBQQMAgIGEgThAwgiCg0KBQQMAgIBEgThAyM1Cg0KBQQMAgIDEgThAzg5Ci4KAgQNEgbmAwDCBwEaICBPWE0gT3BlbkZsb3cgQmFzaWMgTWF0Y2ggRmllbGQgCgsKAwQNARIE5gMIGQoMCgQEDQIAEgTnAwQhCg8KBQQNAgAEEgbnAwTmAxsKDQoFBA0CAAYSBOcDBBcKDQoFBA0CAAESBOcDGBwKDQoFBA0CAAMSBOcDHyAKDAoEBA0CARIE6AMEFgoPCgUEDQIBBBIG6AME5wMhCg0KBQQNAgEFEgToAwQICg0KBQQNAgEBEgToAwkRCg0KBQQNAgEDEgToAxQVCg4KBAQNCAASBukDBKUHBQoNCgUEDQgAARIE6QMKDwrKAgoEBA0CAhIE9AMIGBpGI2RlZmluZSBPWE1fT0ZfSU5fUE9SVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lOX1BPUlQsIDQpCiIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfSU5fUE9SVCAy1AEgT3BlbkZsb3cgcG9ydCBvbiB3aGljaCB0aGUgcGFja2V0IHdhcyByZWNlaXZlZC4KIE1heSBiZSBhIHBoeXNpY2FsIHBvcnQsIGEgbG9naWNhbCBwb3J0LCBvciB0aGUgcmVzZXJ2ZWQgcG9ydCBPRlBQX0xPQ0FMCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQICBRIE9AMIDgoNCgUEDQICARIE9AMPEwoNCgUEDQICAxIE9AMWFwq3BwoEBA0CAxIEiwQIIRpLI2RlZmluZSBPWE1fT0ZfSU5fUEhZX1BPUlQgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JTl9QSFlfUE9SVCwgNCkKIiAgVXNlZCBmb3IgT0ZQWE1UX09GX0lOX1BIWV9QT1JUIDK5BiBQaHlzaWNhbCBwb3J0IG9uIHdoaWNoIHRoZSBwYWNrZXQgd2FzIHJlY2VpdmVkLgoKIENvbnNpZGVyIGEgcGFja2V0IHJlY2VpdmVkIG9uIGEgdHVubmVsIGludGVyZmFjZSBkZWZpbmVkIG92ZXIgYSBsaW5rCiBhZ2dyZWdhdGlvbiBncm91cCAoTEFHKSB3aXRoIHR3byBwaHlzaWNhbCBwb3J0IG1lbWJlcnMuICBJZiB0aGUgdHVubmVsCiBpbnRlcmZhY2UgaXMgdGhlIGxvZ2ljYWwgcG9ydCBib3VuZCB0byBPcGVuRmxvdy4gIEluIHRoaXMgY2FzZSwKIE9GUFhNVF9PRl9JTl9QT1JUIGlzIHRoZSB0dW5uZWwncyBwb3J0IG51bWJlciBhbmQgT0ZQWE1UX09GX0lOX1BIWV9QT1JUIGlzCiB0aGUgcGh5c2ljYWwgcG9ydCBudW1iZXIgb2YgdGhlIExBRyBvbiB3aGljaCB0aGUgdHVubmVsIGlzIGNvbmZpZ3VyZWQuCgogV2hlbiBhIHBhY2tldCBpcyByZWNlaXZlZCBkaXJlY3RseSBvbiBhIHBoeXNpY2FsIHBvcnQgYW5kIG5vdCBwcm9jZXNzZWQgYnkgYQogbG9naWNhbCBwb3J0LCBPRlBYTVRfT0ZfSU5fUE9SVCBhbmQgT0ZQWE1UX09GX0lOX1BIWV9QT1JUIGhhdmUgdGhlIHNhbWUKIHZhbHVlLgoKIFRoaXMgZmllbGQgaXMgdXN1YWxseSBub3QgYXZhaWxhYmxlIGluIGEgcmVndWxhciBtYXRjaCBhbmQgb25seSBhdmFpbGFibGUKIGluIG9mcF9wYWNrZXRfaW4gbWVzc2FnZXMgd2hlbiBpdCdzIGRpZmZlcmVudCBmcm9tIE9YTV9PRl9JTl9QT1JULgoKIFByZXJlcXM6IE9YTV9PRl9JTl9QT1JUIG11c3QgYmUgcHJlc2VudC4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIDBRIEiwQIDgoNCgUEDQIDARIEiwQPHAoNCgUEDQIDAxIEiwQfIAqtAgoEBA0CBBIElwQIIhqOASNkZWZpbmUgT1hNX09GX01FVEFEQVRBICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9NRVRBREFUQSwgOCkKI2RlZmluZSBPWE1fT0ZfTUVUQURBVEFfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX01FVEFEQVRBLCA4KQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX01FVEFEQVRBIDJuIFRhYmxlIG1ldGFkYXRhLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiA2NC1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBA0CBAUSBJcECA4KDQoFBA0CBAESBJcEDx0KDQoFBA0CBAMSBJcEICEK4gMKBAQNAgUSBKQECBoamAIjZGVmaW5lIE9YTV9PRl9FVEhfRFNUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfRVRIX0RTVCwgNikKI2RlZmluZSBPWE1fT0ZfRVRIX0RTVF9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9EU1QsIDYpCiNkZWZpbmUgT1hNX09GX0VUSF9TUkMgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfU1JDLCA2KQojZGVmaW5lIE9YTV9PRl9FVEhfU1JDX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfRVRIX1NSQywgNikKIi8gVXNlZCBmb3IgT0ZQWE1UX09GQl9FVEhfRFNUIChleGFjdGx5IDYgYnl0ZXMpIDKHASBTb3VyY2Ugb3IgZGVzdGluYXRpb24gYWRkcmVzcyBpbiBFdGhlcm5ldCBoZWFkZXIuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDQ4LWJpdCBFdGhlcm5ldCBNQUMgYWRkcmVzcy4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuIAoNCgUEDQIFBRIEpAQIDQoNCgUEDQIFARIEpAQOFQoNCgUEDQIFAxIEpAQYGQo9CgQEDQIGEgSlBAgaIi8gVXNlZCBmb3IgT0ZQWE1UX09GQl9FVEhfU1JDIChleGFjdGx5IDYgYnl0ZXMpIAoNCgUEDQIGBRIEpQQIDQoNCgUEDQIGARIEpQQOFQoNCgUEDQIGAxIEpQQYGQrpAQoEBA0CBxIErwQIHBpGI2RlZmluZSBPWE1fT0ZfRVRIX1RZUEUgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9UWVBFLDIpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfRVRIX1RZUEUgMnMgUGFja2V0J3MgRXRoZXJuZXQgdHlwZS4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAgcFEgSvBAgOCg0KBQQNAgcBEgSvBA8XCg0KBQQNAgcDEgSvBBobCoMLCgQEDQIIEgTVBAgcGo4BI2RlZmluZSBPWE1fT0ZfVkxBTl9WSUQgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1ZMQU5fVklELCAyKQojZGVmaW5lIE9YTV9PRl9WTEFOX1ZJRF9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfVkxBTl9WSUQsIDIpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfVkxBTl9WSUQgMsMJIDgwMi4xUSBWSUQuCgogRm9yIGEgcGFja2V0IHdpdGggYW4gODAyLjFRIGhlYWRlciwgdGhpcyBpcyB0aGUgVkxBTi1JRCAoVklEKSBmcm9tIHRoZQogb3V0ZXJtb3N0IHRhZywgd2l0aCB0aGUgQ0ZJIGJpdCBmb3JjZWQgdG8gMS4gRm9yIGEgcGFja2V0IHdpdGggbm8gODAyLjFRCiBoZWFkZXIsIHRoaXMgaGFzIHZhbHVlIE9GUFZJRF9OT05FLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIgd2l0aCBiaXQgMTMgaW5kaWNhdGluZwogcHJlc2VuY2Ugb2YgVkxBTiBoZWFkZXIgYW5kIDMgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMTMgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKIFRoaXMgZmllbGQgY2FuIGJlIHVzZWQgaW4gdmFyaW91cyB3YXlzOgoKICAgLSBJZiBpdCBpcyBub3QgY29uc3RyYWluZWQgYXQgYWxsLCB0aGUgbnhfbWF0Y2ggbWF0Y2hlcyBwYWNrZXRzIHdpdGhvdXQKICAgICBhbiA4MDIuMVEgaGVhZGVyIG9yIHdpdGggYW4gODAyLjFRIGhlYWRlciB0aGF0IGhhcyBhbnkgVklEIHZhbHVlLgoKICAgLSBUZXN0aW5nIGZvciBhbiBleGFjdCBtYXRjaCB3aXRoIDB4MCBtYXRjaGVzIG9ubHkgcGFja2V0cyB3aXRob3V0CiAgICAgYW4gODAyLjFRIGhlYWRlci4KCiAgIC0gVGVzdGluZyBmb3IgYW4gZXhhY3QgbWF0Y2ggd2l0aCBhIFZJRCB2YWx1ZSB3aXRoIENGST0xIG1hdGNoZXMgcGFja2V0cwogICAgIHRoYXQgaGF2ZSBhbiA4MDIuMVEgaGVhZGVyIHdpdGggYSBzcGVjaWZpZWQgVklELgoKICAgLSBUZXN0aW5nIGZvciBhbiBleGFjdCBtYXRjaCB3aXRoIGEgbm9uemVybyBWSUQgdmFsdWUgd2l0aCBDRkk9MCBkb2VzCiAgICAgbm90IG1ha2Ugc2Vuc2UuICBUaGUgc3dpdGNoIG1heSByZWplY3QgdGhpcyBjb21iaW5hdGlvbi4KCiAgIC0gVGVzdGluZyB3aXRoIG54bV92YWx1ZT0wLCBueG1fbWFzaz0weDBmZmYgbWF0Y2hlcyBwYWNrZXRzIHdpdGggbm8gODAyLjFRCiAgICAgaGVhZGVyIG9yIHdpdGggYW4gODAyLjFRIGhlYWRlciB3aXRoIGEgVklEIG9mIDAuCgogICAtIFRlc3Rpbmcgd2l0aCBueG1fdmFsdWU9MHgxMDAwLCBueG1fbWFzaz0weDEwMDAgbWF0Y2hlcyBwYWNrZXRzIHdpdGgKICAgICBhbiA4MDIuMVEgaGVhZGVyIHRoYXQgaGFzIGFueSBWSUQgdmFsdWUuCgoNCgUEDQIIBRIE1QQIDgoNCgUEDQIIARIE1QQPFwoNCgUEDQIIAxIE1QQaGwrQAwoEBA0CCRIE5QQIHRpHI2RlZmluZSBPWE1fT0ZfVkxBTl9QQ1AgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1ZMQU5fUENQLCAxKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX1ZMQU5fUENQIDLYAiA4MDIuMVEgUENQLgoKIEZvciBhIHBhY2tldCB3aXRoIGFuIDgwMi4xUSBoZWFkZXIsIHRoaXMgaXMgdGhlIFZMQU4tUENQIGZyb20gdGhlCiBvdXRlcm1vc3QgdGFnLiAgRm9yIGEgcGFja2V0IHdpdGggbm8gODAyLjFRIGhlYWRlciwgdGhpcyBoYXMgdmFsdWUKIDAuCgogUHJlcmVxczogT1hNX09GX1ZMQU5fVklEIG11c3QgYmUgZGlmZmVyZW50IGZyb20gT0ZQVklEX05PTkUuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggNSBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAzIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4KCg0KBQQNAgkFEgTlBAgOCg0KBQQNAgkBEgTlBA8XCg0KBQQNAgkDEgTlBBocCqgDCgQEDQIKEgTxBAgcGkcjZGVmaW5lIE9YTV9PRl9JUF9EU0NQICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQX0RTQ1AsIDEpCiIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBfRFNDUCAysQIgVGhlIERpZmYgU2VydiBDb2RlIFBvaW50IChEU0NQKSBiaXRzIG9mIHRoZSBJUCBoZWFkZXIuCiBQYXJ0IG9mIHRoZSBJUHY0IFRvUyBmaWVsZCBvciB0aGUgSVB2NiBUcmFmZmljIENsYXNzIGZpZWxkLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IGJlIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDIgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgNiBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIKBRIE8QQIDgoNCgUEDQIKARIE8QQPFgoNCgUEDQIKAxIE8QQZGwqNAwoEBA0CCxIE/QQIGxpFI2RlZmluZSBPWE1fT0ZfSVBfRUNOICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQX0VDTiwgMSkKIhwgVXNlZCBmb3IgT0ZQWE1UX09GQl9JUF9FQ04gMpkCIFRoZSBFQ04gYml0cyBvZiB0aGUgSVAgaGVhZGVyLgogUGFydCBvZiB0aGUgSVB2NCBUb1MgZmllbGQgb3IgdGhlIElQdjYgVHJhZmZpYyBDbGFzcyBmaWVsZC4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBiZSBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCA2IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDIgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CCwUSBP0ECA4KDQoFBA0CCwESBP0EDxUKDQoFBA0CCwMSBP0EGBoKjQIKBAQNAgwSBIcFCB0aRyNkZWZpbmUgT1hNX09GX0lQX1BST1RPICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUF9QUk9UTywgMSkKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9JUF9QUk9UTyAylQEgVGhlICJwcm90b2NvbCIgYnl0ZSBpbiB0aGUgSVAgaGVhZGVyLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IGJlIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIMBRIEhwUIDgoNCgUEDQIMARIEhwUPFwoNCgUEDQIMAxIEhwUaHAqNBAoEBA0CDRIElQUIHRqkAiNkZWZpbmUgT1hNX09GX0lQVjRfU1JDICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjRfU1JDLCA0KQojZGVmaW5lIE9YTV9PRl9JUFY0X1NSQ19XICAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY0X1NSQywgNCkKI2RlZmluZSBPWE1fT0ZfSVBWNF9EU1QgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNF9EU1QsIDQpCiNkZWZpbmUgT1hNX09GX0lQVjRfRFNUX1cgICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjRfRFNULCA0KQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQVjRfU1JDIDK3ASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIGFkZHJlc3MgaW4gdGhlIElQIGhlYWRlci4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDAgZXhhY3RseS4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDQINBRIElQUIDgoNCgUEDQINARIElQUPFwoNCgUEDQINAxIElQUaHAosCgQEDQIOEgSWBQgdIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9JUFY0X0RTVCAKDQoFBA0CDgUSBJYFCA4KDQoFBA0CDgESBJYFDxcKDQoFBA0CDgMSBJYFGhwKoQMKBAQNAg8SBKMFCBwajAEjZGVmaW5lIE9YTV9PRl9UQ1BfU1JDICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVENQX1NSQywgMikKI2RlZmluZSBPWE1fT0ZfVENQX0RTVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1RDUF9EU1QsIDIpCiIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfVENQX1NSQyAy5AEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBwb3J0IGluIHRoZSBUQ1AgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IGJlIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA2IGV4YWN0bHkuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CDwUSBKMFCA4KDQoFBA0CDwESBKMFDxYKDQoFBA0CDwMSBKMFGRsKKwoEBA0CEBIEpAUIHCIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfVENQX0RTVCAKDQoFBA0CEAUSBKQFCA4KDQoFBA0CEAESBKQFDxYKDQoFBA0CEAMSBKQFGRsKpQMKBAQNAhESBLEFCBwajAEjZGVmaW5lIE9YTV9PRl9VRFBfU1JDICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVURQX1NSQywgMikKI2RlZmluZSBPWE1fT0ZfVURQX0RTVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1VEUF9EU1QsIDIpCiIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfVURQX1NSQyAy6AEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBwb3J0IGluIHRoZSBVRFAgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCAxNyBleGFjdGx5LgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAhEFEgSxBQgOCg0KBQQNAhEBEgSxBQ8WCg0KBQQNAhEDEgSxBRkbCisKBAQNAhISBLIFCBwiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX1VEUF9EU1QgCg0KBQQNAhIFEgSyBQgOCg0KBQQNAhIBEgSyBQ8WCg0KBQQNAhIDEgSyBRkbCqoDCgQEDQITEgS/BQgdGo4BI2RlZmluZSBPWE1fT0ZfU0NUUF9TUkMgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1NDVFBfU1JDLCAyKQojZGVmaW5lIE9YTV9PRl9TQ1RQX0RTVCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfU0NUUF9EU1QsIDIpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfU0NUUF9TUkMgMuoBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gcG9ydCBpbiB0aGUgU0NUUCBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDEzMiBleGFjdGx5LgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAhMFEgS/BQgOCg0KBQQNAhMBEgS/BQ8XCg0KBQQNAhMDEgS/BRocCiwKBAQNAhQSBMAFCB0iHiBVc2VkIGZvciBPRlBYTVRfT0ZCX1NDVFBfRFNUIAoNCgUEDQIUBRIEwAUIDgoNCgUEDQIUARIEwAUPFwoNCgUEDQIUAxIEwAUaHAqHAwoEBA0CFRIEzQUIIBqYASNkZWZpbmUgT1hNX09GX0lDTVBWNF9UWVBFICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lDTVBWNF9UWVBFLCAxKQojZGVmaW5lIE9YTV9PRl9JQ01QVjRfQ09ERSAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JQ01QVjRfQ09ERSwgMSkKIiEgVXNlZCBmb3IgT0ZQWE1UX09GQl9JQ01QVjRfVFlQRSAyugEgVGhlIHR5cGUgb3IgY29kZSBpbiB0aGUgSUNNUCBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODAwIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDEgZXhhY3RseS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CFQUSBM0FCA4KDQoFBA0CFQESBM0FDxoKDQoFBA0CFQMSBM0FHR8KLwoEBA0CFhIEzgUIICIhIFVzZWQgZm9yIE9GUFhNVF9PRkJfSUNNUFY0X0NPREUgCg0KBQQNAhYFEgTOBQgOCg0KBQQNAhYBEgTOBQ8aCg0KBQQNAhYDEgTOBR0fCtUCCgQEDQIXEgTbBQgbGkUjZGVmaW5lIE9YTV9PRl9BUlBfT1AgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX09QLCAyKQoiHCBVc2VkIGZvciBPRlBYTVRfT0ZCX0FSUF9PUCAy4QEgQVJQIG9wY29kZS4KCiBGb3IgYW4gRXRoZXJuZXQrSVAgQVJQIHBhY2tldCwgdGhlIG9wY29kZSBpbiB0aGUgQVJQIGhlYWRlci4gIEFsd2F5cyAwCiBvdGhlcndpc2UuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODA2IGV4YWN0bHkuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CFwUSBNsFCA4KDQoFBA0CFwESBNsFDxUKDQoFBA0CFwMSBNsFGBoKtQQKBAQNAhgSBOoFCBwamAIjZGVmaW5lIE9YTV9PRl9BUlBfU1BBICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1NQQSwgNCkKI2RlZmluZSBPWE1fT0ZfQVJQX1NQQV9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9TUEEsIDQpCiNkZWZpbmUgT1hNX09GX0FSUF9UUEEgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfVFBBLCA0KQojZGVmaW5lIE9YTV9PRl9BUlBfVFBBX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1RQQSwgNCkKIhggRm9yIE9GUFhNVF9PRkJfQVJQX1NQQSAy8QEgRm9yIGFuIEV0aGVybmV0K0lQIEFSUCBwYWNrZXQsIHRoZSBzb3VyY2Ugb3IgdGFyZ2V0IHByb3RvY29sIGFkZHJlc3MKIGluIHRoZSBBUlAgaGVhZGVyLiAgQWx3YXlzIDAgb3RoZXJ3aXNlLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwNiBleGFjdGx5LgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQNAhgFEgTqBQgOCg0KBQQNAhgBEgTqBQ8WCg0KBQQNAhgDEgTqBRkbCiYKBAQNAhkSBOsFCBwiGCBGb3IgT0ZQWE1UX09GQl9BUlBfVFBBIAoNCgUEDQIZBRIE6wUIDgoNCgUEDQIZARIE6wUPFgoNCgUEDQIZAxIE6wUZGwq3BAoEBA0CGhIE+QUIGxqcAiNkZWZpbmUgT1hNX09GX0FSUF9TSEEgICAgT1hNX0hFQURFUiAgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1NIQSwgNikKI2RlZmluZSBPWE1fT0ZfQVJQX1NIQV9XICBPWE1fSEVBREVSX1cgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfU0hBLCA2KQojZGVmaW5lIE9YTV9PRl9BUlBfVEhBICAgIE9YTV9IRUFERVIgICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9USEEsIDYpCiNkZWZpbmUgT1hNX09GX0FSUF9USEFfVyAgT1hNX0hFQURFUl9XICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1RIQSwgNikKIiIgRm9yIE9GUFhNVF9PRkJfQVJQX1NIQSAoNiBieXRlcykgMuUBIEZvciBhbiBFdGhlcm5ldCtJUCBBUlAgcGFja2V0LCB0aGUgc291cmNlIG9yIHRhcmdldCBoYXJkd2FyZSBhZGRyZXNzCiBpbiB0aGUgQVJQIGhlYWRlci4gIEFsd2F5cyAwIG90aGVyd2lzZS4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDYgZXhhY3RseS4KCiBGb3JtYXQ6IDQ4LWJpdCBFdGhlcm5ldCBNQUMgYWRkcmVzcy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIaBRIE+QUIDQoNCgUEDQIaARIE+QUOFQoNCgUEDQIaAxIE+QUYGgowCgQEDQIbEgT6BQgbIiIgRm9yIE9GUFhNVF9PRkJfQVJQX1RIQSAoNiBieXRlcykgCg0KBQQNAhsFEgT6BQgNCg0KBQQNAhsBEgT6BQ4VCg0KBQQNAhsDEgT6BRgaCvoDCgQEDQIcEgSIBggcGqQCI2RlZmluZSBPWE1fT0ZfSVBWNl9TUkMgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X1NSQywgMTYpCiNkZWZpbmUgT1hNX09GX0lQVjZfU1JDX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9TUkMsIDE2KQojZGVmaW5lIE9YTV9PRl9JUFY2X0RTVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRFNULCAxNikKI2RlZmluZSBPWE1fT0ZfSVBWNl9EU1RfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0RTVCwgMTYpCiIZIEZvciBPRlBYTVRfT0ZCX0lQVjZfU1JDIDKpASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIGFkZHJlc3MgaW4gdGhlIElQdjYgaGVhZGVyLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgoKIEZvcm1hdDogMTI4LWJpdCBJUHY2IGFkZHJlc3MuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBA0CHAUSBIgGCA0KDQoFBA0CHAESBIgGDhYKDQoFBA0CHAMSBIgGGRsKJwoEBA0CHRIEiQYIHCIZIEZvciBPRlBYTVRfT0ZCX0lQVjZfRFNUIAoNCgUEDQIdBRIEiQYIDQoNCgUEDQIdARIEiQYOFgoNCgUEDQIdAxIEiQYZGwqdAwoEBA0CHhIElwYIIBqaASNkZWZpbmUgT1hNX09GX0lQVjZfRkxBQkVMICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0ZMQUJFTCwgNCkKI2RlZmluZSBPWE1fT0ZfSVBWNl9GTEFCRUxfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMLCA0KQoiHCBGb3IgT0ZQWE1UX09GQl9JUFY2X0ZMQUJFTCAy0wEgVGhlIElQdjYgRmxvdyBMYWJlbAoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5CgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciB3aXRoIDEyIG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDIwIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQNAh4FEgSXBggOCg0KBQQNAh4BEgSXBg8aCg0KBQQNAh4DEgSXBh0fCoMDCgQEDQIfEgSkBgggGpYBI2RlZmluZSBPWE1fT0ZfSUNNUFY2X1RZUEUgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JQ01QVjZfVFlQRSwgMSkKI2RlZmluZSBPWE1fT0ZfSUNNUFY2X0NPREUgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JQ01QVjZfQ09ERSwgMSkKIhwgRm9yIE9GUFhNVF9PRkJfSUNNUFY2X1RZUEUgMr0BIFRoZSB0eXBlIG9yIGNvZGUgaW4gdGhlIElDTVB2NiBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDU4IGV4YWN0bHkuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAh8FEgSkBggOCg0KBQQNAh8BEgSkBg8aCg0KBQQNAh8DEgSkBh0fCioKBAQNAiASBKUGCCAiHCBGb3IgT0ZQWE1UX09GQl9JQ01QVjZfQ09ERSAKDQoFBA0CIAUSBKUGCA4KDQoFBA0CIAESBKUGDxoKDQoFBA0CIAMSBKUGHR8KkQMKBAQNAiESBLMGCCIaVyNkZWZpbmUgT1hNX09GX0lQVjZfTkRfVEFSR0VUIE9YTV9IRUFERVIgXAogICAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X05EX1RBUkdFVCwgMTYpCiIfIEZvciBPRlBYTVRfT0ZCX0lQVjZfTkRfVEFSR0VUIDKIAiBUaGUgdGFyZ2V0IGFkZHJlc3MgaW4gYW4gSVB2NiBOZWlnaGJvciBEaXNjb3ZlcnkgbWVzc2FnZS4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNTggZXhhY3RseS4KICAgT1hNX09GX0lDTVBWNl9UWVBFIG11c3QgYmUgZWl0aGVyIDEzNSBvciAxMzYuCgogRm9ybWF0OiAxMjgtYml0IElQdjYgYWRkcmVzcy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIhBRIEswYIDQoNCgUEDQIhARIEswYOHAoNCgUEDQIhAxIEswYfIQqXAwoEBA0CIhIEwQYIHxpMI2RlZmluZSBPWE1fT0ZfSVBWNl9ORF9TTEwgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9ORF9TTEwsIDYpCiIcIEZvciBPRlBYTVRfT0ZCX0lQVjZfTkRfU0xMIDKcAiBUaGUgc291cmNlIGxpbmstbGF5ZXIgYWRkcmVzcyBvcHRpb24gaW4gYW4gSVB2NiBOZWlnaGJvciBEaXNjb3ZlcnkKIG1lc3NhZ2UuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDU4IGV4YWN0bHkuCiAgIE9YTV9PRl9JQ01QVjZfVFlQRSBtdXN0IGJlIGV4YWN0bHkgMTM1LgoKIEZvcm1hdDogNDgtYml0IEV0aGVybmV0IE1BQyBhZGRyZXNzLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAiIFEgTBBggNCg0KBQQNAiIBEgTBBg4ZCg0KBQQNAiIDEgTBBhweCpcDCgQEDQIjEgTPBggfGkwjZGVmaW5lIE9YTV9PRl9JUFY2X05EX1RMTCAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X05EX1RMTCwgNikKIhwgRm9yIE9GUFhNVF9PRkJfSVBWNl9ORF9UTEwgMpwCIFRoZSB0YXJnZXQgbGluay1sYXllciBhZGRyZXNzIG9wdGlvbiBpbiBhbiBJUHY2IE5laWdoYm9yIERpc2NvdmVyeQogbWVzc2FnZS4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNTggZXhhY3RseS4KICAgT1hNX09GX0lDTVBWNl9UWVBFIG11c3QgYmUgZXhhY3RseSAxMzYuCgogRm9ybWF0OiA0OC1iaXQgRXRoZXJuZXQgTUFDIGFkZHJlc3MuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CIwUSBM8GCA0KDQoFBA0CIwESBM8GDhkKDQoFBA0CIwMSBM8GHB4K/gIKBAQNAiQSBNsGCB8aSiNkZWZpbmUgT1hNX09GX01QTFNfTEFCRUwgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfTVBMU19MQUJFTCwgNCkKIhsgRm9yIE9GUFhNVF9PRkJfTVBMU19MQUJFTCAyhgIgVGhlIExBQkVMIGluIHRoZSBmaXJzdCBNUExTIHNoaW0gaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODg0NyBvciAweDg4NDggZXhhY3RseS4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlciB3aXRoIDEyIG1vc3Qtc2lnbmlmaWNhbnQKIGJpdHMgZm9yY2VkIHRvIDAuIE9ubHkgdGhlIGxvd2VyIDIwIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAiQFEgTbBggOCg0KBQQNAiQBEgTbBg8ZCg0KBQQNAiQDEgTbBhweCtwCCgQEDQIlEgTnBggcGkcjZGVmaW5lIE9YTV9PRl9NUExTX1RDICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX01QTFNfVEMsIDEpCiIYIEZvciBPRlBYTVRfT0ZCX01QTFNfVEMgMuoBIFRoZSBUQyBpbiB0aGUgZmlyc3QgTVBMUyBzaGltIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg4NDcgb3IgMHg4ODQ4IGV4YWN0bHkuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggNSBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAzIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAiUFEgTnBggOCg0KBQQNAiUBEgTnBg8WCg0KBQQNAiUDEgTnBhkbCuQCCgQEDQImEgTzBggdGkkjZGVmaW5lIE9YTV9PRl9NUExTX0JPUyAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9NUExTX0JPUywgMSkKIhkgRm9yIE9GUFhNVF9PRkJfTVBMU19CT1MgMu8BIFRoZSBCb1MgYml0IGluIHRoZSBmaXJzdCBNUExTIHNoaW0gaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODg0NyBvciAweDg4NDggZXhhY3RseS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCA3IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VzdCBiaXQgaGF2ZSBhIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CJgUSBPMGCA4KDQoFBA0CJgESBPMGDxcKDQoFBA0CJgMSBPMGGhwKqgMKBAQNAicSBIIHCB0ajgEjZGVmaW5lIE9YTV9PRl9QQkJfSVNJRCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfUEJCX0lTSUQsIDMpCiNkZWZpbmUgT1hNX09GX1BCQl9JU0lEX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9QQkJfSVNJRCwgMykKIhkgRm9yIE9GUFhNVF9PRkJfUEJCX0lTSUQgMu8BIElFRUUgODAyLjFhaCBJLVNJRC4KCiBGb3IgYSBwYWNrZXQgd2l0aCBhIFBCQiBoZWFkZXIsIHRoaXMgaXMgdGhlIEktU0lEIGZyb20gdGhlCiBvdXRlcm1vc3Qgc2VydmljZSB0YWcuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4OEU3IGV4YWN0bHkuCgogRm9ybWF0OiAyNC1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLiAKDQoFBA0CJwUSBIIHCA4KDQoFBA0CJwESBIIHDxcKDQoFBA0CJwMSBIIHGhwKvAYKBAQNAigSBJYHCB4alAEjZGVmaW5lIE9YTV9PRl9UVU5ORUxfSUQgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9UVU5ORUxfSUQsIDgpCiNkZWZpbmUgT1hNX09GX1RVTk5FTF9JRF9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX1RVTk5FTF9JRCwgOCkKIhogRm9yIE9GUFhNVF9PRkJfVFVOTkVMX0lEIDL6BCBMb2dpY2FsIFBvcnQgTWV0YWRhdGEuCgogTWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgbG9naWNhbCBwb3J0LgogSWYgdGhlIGxvZ2ljYWwgcG9ydCBwZXJmb3JtcyBlbmNhcHN1bGF0aW9uIGFuZCBkZWNhcHN1bGF0aW9uLCB0aGlzCiBpcyB0aGUgZGVtdWx0aXBsZXhpbmcgZmllbGQgZnJvbSB0aGUgZW5jYXBzdWxhdGlvbiBoZWFkZXIuCiBGb3IgZXhhbXBsZSwgZm9yIGEgcGFja2V0IHJlY2VpdmVkIHZpYSBHUkUgdHVubmVsIGluY2x1ZGluZyBhICgzMi1iaXQpIGtleSwKIHRoZSBrZXkgaXMgc3RvcmVkIGluIHRoZSBsb3cgMzItYml0cyBhbmQgdGhlIGhpZ2ggYml0cyBhcmUgemVyb2VkLgogRm9yIGEgTVBMUyBsb2dpY2FsIHBvcnQsIHRoZSBsb3cgMjAgYml0cyByZXByZXNlbnQgdGhlIE1QTFMgTGFiZWwuCiBGb3IgYSBWeExBTiBsb2dpY2FsIHBvcnQsIHRoZSBsb3cgMjQgYml0cyByZXByZXNlbnQgdGhlIFZOSS4KIElmIHRoZSBwYWNrZXQgaXMgbm90IHJlY2VpdmVkIHRocm91Z2ggYSBsb2dpY2FsIHBvcnQsIHRoZSB2YWx1ZSBpcyAwLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiA2NC1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLiAKDQoFBA0CKAUSBJYHCA4KDQoFBA0CKAESBJYHDxgKDQoFBA0CKAMSBJYHGx0KqAMKBAQNAikSBKMHCCAamgEjZGVmaW5lIE9YTV9PRl9JUFY2X0VYVEhEUiAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9FWFRIRFIsIDIpCiNkZWZpbmUgT1hNX09GX0lQVjZfRVhUSERSX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0VYVEhEUiwgMikKIhwgRm9yIE9GUFhNVF9PRkJfSVBWNl9FWFRIRFIgMt4BIFRoZSBJUHY2IEV4dGVuc2lvbiBIZWFkZXIgcHNldWRvLWZpZWxkLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5CgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciB3aXRoIDcgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgOSBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBNYXNrYWJsZS4gCg0KBQQNAikFEgSjBwgOCg0KBQQNAikBEgSjBw8aCg0KBQQNAikDEgSjBx0fCk0KBAQNCAESBqgHBMAHBRo9IE9wdGlvbmFsIG1hc2sgdmFsdWVzIChtdXN0IGJlIHByZXNlbnQgd2hlbiBoYXNf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T3BlbkZsb3cgc3dpdGNoLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIHN0cnVjdCBvZnBfZGVzYy4gCg0KBQUuAgABEgSVDQQOCg0KBQUuAgACEgSVDRESCpYBCgQFLgIBEgSaDQQTGocBIEluZGl2aWR1YWwgZmxvdyBzdGF0aXN0aWNzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX2Zsb3dfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfZmxvd19zdGF0cy4gCg0KBQUuAgEBEgSaDQQOCg0KBQUuAgECEgSaDRESCpkBCgQFLgICEgSfDQQYGooBIEFnZ3JlZ2F0ZSBmbG93IHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfYWdncmVnYXRlX3N0YXRzX3JlcXVlc3QuCiBUaGUgcmVwbHkgYm9keSBpcyBzdHJ1Y3Qgb2ZwX2FnZ3JlZ2F0ZV9zdGF0c19yZXBseS4gCg0KBQUuAgIBEgSfDQQTCg0KBQUuAgICEgSfDRYXCnkKBAUuAgMSBKQNBBQaayBGbG93IHRhYmxlIHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVtcHR5LgogVGhlIHJlcGx5IGJvZHkgaXMgYW4gYXJyYXkgb2Ygc3RydWN0IG9mcF90YWJsZV9zdGF0cy4gCg0KBQUuAgMBEgSkDQQPCg0KBQUuAgMCEgSkDRITCooBCgQFLgIEEgSpDQQZGnwgUG9ydCBzdGF0aXN0aWNzLgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX3BvcnRfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfcG9ydF9zdGF0cy4gCg0KBQUuAgQBEgSpDQQUCg0KBQUuAgQCEgSpDRcYCpcBCgQFLgIFEgSuDQQUGogBIFF1ZXVlIHN0YXRpc3RpY3MgZm9yIGEgcG9ydAogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX3F1ZXVlX3N0YXRzX3JlcXVlc3QuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX3F1ZXVlX3N0YXRzIAoNCgUFLgIFARIErg0EDwoNCgUFLgIFAhIErg0SEwqRAQoEBS4CBhIEsw0EFBqCASBHcm91cCBjb3VudGVyIHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfZ3JvdXBfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX2dyb3VwX3N0YXRzLiAKDQoFBS4CBgESBLMNBA8KDQoFBS4CBgISBLMNEhMKdAoEBS4CBxIEuA0EGRpmIEdyb3VwIGRlc2NyaXB0aW9uLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfZ3JvdXBfZGVzYy4gCg0KBQUuAgcBEgS4DQQUCg0KBQUuAgcCEgS4DRcYCmkKBAUuAggSBL0NBB0aWyBHcm91cCBmZWF0dXJlcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBzdHJ1Y3Qgb2ZwX2dyb3VwX2ZlYXR1cmVzLiAKDQoFBS4CCAESBL0NBBgKDQoFBS4CCAISBL0NGxwKkwEKBAUuAgkSBMINBBQahAEgTWV0ZXIgc3RhdGlzdGljcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdHMuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX21ldGVyX3N0YXRzLiAKDQoFBS4CCQESBMINBA8KDQoFBS4CCQISBMINEhMKlwEKBAUuAgoSBMcNBBwaiAEgTWV0ZXIgY29uZmlndXJhdGlvbi4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdHMuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX21ldGVyX2NvbmZpZy4gCg0KBQUuAgoBEgTHDQQWCg0KBQUuAgoCEgTHDRkbCmkKBAUuAgsSBMwNBB4aWyBNZXRlciBmZWF0dXJlcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBzdHJ1Y3Qgb2ZwX21ldGVyX2ZlYXR1cmVzLiAKDQoFBS4CCwESBMwNBBgKDQoFBS4CCwISBMwNGx0KsQIKBAUuAgwSBNQNBB4aogIgVGFibGUgZmVhdHVyZXMuCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVpdGhlciBlbXB0eSBvciBjb250YWlucyBhbiBhcnJheSBvZgogc3RydWN0IG9mcF90YWJsZV9mZWF0dXJlcyBjb250YWluaW5nIHRoZSBjb250cm9sbGVyJ3MKIGRlc2lyZWQgdmlldyBvZiB0aGUgc3dpdGNoLiBJZiB0aGUgc3dpdGNoIGlzIHVuYWJsZSB0bwogc2V0IHRoZSBzcGVjaWZpZWQgdmlldyBhbiBlcnJvciBpcyByZXR1cm5lZC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfdGFibGVfZmVhdHVyZXMuIAoNCgUFLgIMARIE1A0EGAoNCgUFLgIMAhIE1A0bHQptCgQFLgINEgTZDQQZGl8gUG9ydCBkZXNjcmlwdGlvbi4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX3BvcnQuIAoNCgUFLgINARIE2Q0EEwoNCgUFLgINAhIE2Q0WGAq+AQoEBS4CDhIE3w0EIBqvASBFeHBlcmltZW50ZXIgZXh0ZW5zaW9uLgogVGhlIHJlcXVlc3QgYW5kIHJlcGx5IGJvZGllcyBiZWdpbiB3aXRoCiBzdHJ1Y3Qgb2ZwX2V4cGVyaW1lbnRlcl9tdWx0aXBhcnRfaGVhZGVyLgogVGhlIHJlcXVlc3QgYW5kIHJlcGx5IGJvZGllcyBhcmUgb3RoZXJ3aXNlIGV4cGVyaW1lbnRlci1kZWZpbmVkLiAKDQoFBS4CDgESBN8NBBYKDQoFBS4CDgISBN8NGR8KfAoCBS8SBuUNAOgNATI9IEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCAx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BKIRBAoKDQoFBFMCBQESBKIRCxcKDQoFBFMCBQMSBKIRGhsKTQoEBFMCBhIEoxEEHSI/IFRpbWUgcXVldWUgaGFzIGJlZW4gYWxpdmUgaW4gbmFub3NlY29uZHMKYmV5b25kIGR1cmF0aW9uX3NlYy4gCg8KBQRTAgYEEgajEQSiERwKDQoFBFMCBgUSBKMRBAoKDQoFBFMCBgESBKMRCxgKDQoFBFMCBgMSBKMRGxwK6wYKAgU0Ega8EQDBEQEaEyBDb250cm9sbGVyIHJvbGVzLiAyxwYgQ29uZmlndXJlcyB0aGUgInJvbGUiIG9mIHRoZSBzZW5kaW5nIGNvbnRyb2xsZXIuICBUaGUgZGVmYXVsdCByb2xlIGlzOgoKICAgIC0gRXF1YWwgKE9GUENSX1JPTEVfRVFVQUwpLCB3aGljaCBhbGxvd3MgdGhlIGNvbnRyb2xsZXIgYWNjZXNzIHRvIGFsbAogICAgICBPcGVuRmxvdyBmZWF0dXJlcy4gQWxsIGNvbnRyb2xsZXJzIGhhdmUgZXF1YWwgcmVzcG9uc2liaWxpdHkuCgogVGhlIG90aGVyIHBvc3NpYmxlIHJvbGVzIGFyZSBhIHJlbGF0ZWQgcGFpcjoKCiAgICAtIE1hc3RlciAoT0ZQQ1JfUk9MRV9NQVNURVIpIGlzIGVxdWl2YWxlbnQgdG8gRXF1YWwsIGV4Y2VwdCB0aGF0IHRoZXJlCiAgICAgIG1heSBiZSBhdCBtb3N0IG9uZSBNYXN0ZXIgY29udHJvbGxlciBhdCBhIHRpbWU6IHdoZW4gYSBjb250cm9sbGVyCiAgICAgIGNvbmZpZ3VyZXMgaXRzZWxmIGFzIE1hc3RlciwgYW55IGV4aXN0aW5nIE1hc3RlciBpcyBkZW1vdGVkIHRvIHRoZQogICAgICBTbGF2ZSByb2xlLgoKICAgIC0gU2xhdmUgKE9GUENSX1JPTEVfU0xBVkUpIGFsbG93cyB0aGUgY29udHJvbGxlciByZWFkLW9ubHkgYWNjZXNzIHRvCiAgICAgIE9wZW5GbG93IGZlYXR1cmVzLiAgSW4gcGFydGljdWxhciBhdHRlbXB0cyB0byBtb2RpZnkgdGhlIGZsb3cgdGFibGUKICAgICAgd2lsbCBiZSByZWplY3RlZCB3aXRoIGFuIE9GUEJS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CgUEAwIDBhIDLAQjCgwKBQQDAgMBEgMsJDMKDAoFBAMCAwMSAyw2Nwo/CgQEAwIEEgMvBB4aMiBuYW1lIG9mIHRoZSByb290IGRldmljZSBhbmNob3JpbmcgbG9naWNhbCBkZXZpY2UKCg0KBQQDAgQEEgQvBCw4CgwKBQQDAgQFEgMvBAoKDAoFBAMCBAESAy8LGQoMCgUEAwIEAxIDLxwdCgoKAgQEEgQyADQBCgoKAwQEARIDMggWCgsKBAQEAgASAzMEJQoMCgUEBAIABBIDMwQMCgwKBQQEAgAGEgMzDRoKDAoFBAQCAAESAzMbIAoMCgUEBAIAAxIDMyMkYgZwcm90bzMK/9gBChp2b2x0aGFfcHJvdG9zL2RldmljZS5wcm90bxIGZGV2aWNlGhlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90byLiAgoKRGV2aWNlVHlwZRIOCgJpZBgBIAEoCVICaWQSGwoJdmVuZG9yX2lkGAUgASgJUgh2ZW5kb3JJZBIdCgp2ZW5kb3JfaWRzGAYgAygJUgl2ZW5kb3JJZHMSGAoHYWRhcHRlchgCIAEoCVIHYWRhcHRlchI3ChhhY2NlcHRzX2J1bGtfZmxvd191cGRhdGUYAyABKAhSFWFjY2VwdHNCdWxrRmxvd1VwZGF0ZRJECh9hY2NlcHRzX2FkZF9yZW1vdmVfZmxvd191cGRhdGVzGAQgASgIUhthY2NlcHRzQWRkUmVtb3ZlRmxvd1VwZGF0ZXMSTAojYWNjZXB0c19kaXJlY3RfbG9naWNhbF9mbG93c191cGRhdGUYByABKAhSH2FjY2VwdHNEaXJlY3RMb2dpY2FsRmxvd3NVcGRhdGUSIQoMYWRhcHRlcl90eXBlGAggASgJUgthZGFwdGVyVHlwZSI3CgtEZXZpY2VUeXBlcxIoCgVpdGVtcxgBIAMoCzISLmRldmljZS5EZXZpY2VUeXBlUgVpdGVtcyLAAQoIUG1Db25maWcSEgoEbmFtZRgBIAEoCVIEbmFtZRIrCgR0eXBlGAIgASgOMhcuZGV2aWNlLlBtQ29uZmlnLlBtVHlwZVIEdHlwZRIYCgdlbmFibGVkGAMgASgIUgdlbmFibGVkEh8KC3NhbXBsZV9mcmVxGAQgASgNUgpzYW1wbGVGcmVxIjgKBlBtVHlwZRILCgdDT1VOVEVSEAASCQoFR0FVR0UQARIJCgVTVEFURRACEgsKB0NPTlRFWFQQAyKTAQoNUG1Hcm91cENvbmZpZxIdCgpncm91cF9uYW1lGAEgASgJUglncm91cE5hbWUSHQoKZ3JvdXBfZnJlcRgCIAEoDVIJZ3JvdXBGcmVxEhgKB2VuYWJsZWQYAyABKAhSB2VuYWJsZWQSKgoHbWV0cmljcxgEIAMoCzIQLmRldmljZS5QbUNvbmZpZ1IHbWV0cmljcyLzAQoJUG1Db25maWdzEg4KAmlkGAEgASgJUgJpZBIhCgxkZWZhdWx0X2ZyZXEYAiABKA1SC2RlZmF1bHRGcmVxEhgKB2dyb3VwZWQYAyABKAhSB2dyb3VwZWQSIwoNZnJlcV9vdmVycmlkZRgEIAEoCFIMZnJlcU92ZXJyaWRlEi0KBmdyb3VwcxgFIAMoCzIVLmRldmljZS5QbUdyb3VwQ29uZmlnUgZncm91cHMSKgoHbWV0cmljcxgGIAMoCzIQLmRldmljZS5QbUNvbmZpZ1IHbWV0cmljcxIZCghtYXhfc2tldxgHIAEoDVIHbWF4U2tldyKPAgoFSW1hZ2USEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgJUgd2ZXJzaW9uEhIKBGhhc2gYAyABKA1SBGhhc2gSKQoQaW5zdGFsbF9kYXRldGltZRgEIAEoCVIPaW5zdGFsbERhdGV0aW1lEhsKCWlzX2FjdGl2ZRgFIAEoCFIIaXNBY3RpdmUSIQoMaXNfY29tbWl0dGVkGAYgASgIUgtpc0NvbW1pdHRlZBIZCghpc192YWxpZBgHIAEoCFIHaXNWYWxpZBIQCgN1cmwYCCABKAlSA3VybBIWCgZ2ZW5kb3IYCSABKAlSBnZlbmRvchIUCgVjcmMzMhgKIAEoDVIFY3JjMzIi5wcKDUltYWdlRG93bmxvYWQSDgoCaWQYASABKAlSAmlkEhIKBG5hbWUYAiABKAlSBG5hbWUSEAoDdXJsGAMgASgJUgN1cmwSEAoDY3JjGAQgASgNUgNjcmMSTwoOZG93bmxvYWRfc3RhdGUYBSABKA4yKC5kZXZpY2UuSW1hZ2VEb3dubG9hZC5JbWFnZURvd25sb2FkU3RhdGVSDWRvd25sb2FkU3RhdGUSIwoNaW1hZ2VfdmVyc2lvbhgGIAEoCVIMaW1hZ2VWZXJzaW9uEikKEGRvd25sb2FkZWRfYnl0ZXMYByABKA1SD2Rvd25sb2FkZWRCeXRlcxJICgZyZWFzb24YCCABKA4yMC5kZXZpY2UuSW1hZ2VEb3dubG9hZC5JbWFnZURvd25sb2FkRmFpbHVyZVJlYXNvblIGcmVhc29uEicKD2FkZGl0aW9uYWxfaW5mbxgJIAEoCVIOYWRkaXRpb25hbEluZm8SHwoLc2F2ZV9jb25maWcYCiABKAhSCnNhdmVDb25maWcSGwoJbG9jYWxfZGlyGAsgASgJUghsb2NhbERpchJJCgtpbWFnZV9zdGF0ZRgMIAEoDjIoLmRldmljZS5JbWFnZURvd25sb2FkLkltYWdlQWN0aXZhdGVTdGF0ZVIKaW1hZ2VTdGF0ZRIbCglmaWxlX3NpemUYDSABKA1SCGZpbGVTaXplIrcBChJJbWFnZURvd25sb2FkU3RhdGUSFAoQRE9XTkxPQURfVU5LTk9XThAAEhYKEkRPV05MT0FEX1NVQ0NFRURFRBABEhYKEkRPV05MT0FEX1JFUVVFU1RFRBACEhQKEERPV05MT0FEX1NUQVJURUQQAxITCg9ET1dOTE9BRF9GQUlMRUQQBBIYChRET1dOTE9BRF9VTlNVUFBPUlRFRBAFEhYKEkRPV05MT0FEX0NBTkNFTExFRBAGIoYBChpJbWFnZURvd25sb2FkRmFpbHVyZVJlYXNvbhIMCghOT19FUlJPUhAAEg8KC0lOVkFMSURfVVJMEAESDwoLREVWSUNFX0JVU1kQAhIWChJJTlNVRkZJQ0lFTlRfU1BBQ0UQAxIRCg1VTktOT1dOX0VSUk9SEAQSDQoJQ0FOQ0VMTEVEEAUijAEKEkltYWdlQWN0aXZhdGVTdGF0ZRIRCg1JTUFHRV9VTktOT1dOEAASEgoOSU1BR0VfSU5BQ1RJVkUQARIUChBJTUFHRV9BQ1RJVkFUSU5HEAISEAoMSU1BR0VfQUNUSVZFEAMSEwoPSU1BR0VfUkVWRVJUSU5HEAQSEgoOSU1BR0VfUkVWRVJURUQQBToCGAEiQQoOSW1hZ2VEb3dubG9hZHMSKwoFaXRlbXMYAiADKAsyFS5kZXZpY2UuSW1hZ2VEb3dubG9hZFIFaXRlbXM6AhgBIi0KBkltYWdlcxIjCgVpbWFnZRgBIAMoCzINLmRldmljZS5JbWFnZVIFaW1hZ2UisAEKCE9udUltYWdlEhgKB3ZlcnNpb24YASABKAlSB3ZlcnNpb24SHgoKaXNDb21taXRlZBgCIAEoCFIKaXNDb21taXRlZBIaCghpc0FjdGl2ZRgDIAEoCFIIaXNBY3RpdmUSGAoHaXNWYWxpZBgEIAEoCFIHaXNWYWxpZBIgCgtwcm9kdWN0Q29kZRgFIAEoCVILcHJvZHVjdENvZGUSEgoEaGFzaBgGIAEoCVIEaGFzaCIzCglPbnVJbWFnZXMSJgoFaXRlbXMYASADKAsyEC5kZXZpY2UuT251SW1hZ2VSBWl0ZW1zImMKEERldmljZUltYWdlU3RhdGUSGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIyCgppbWFnZVN0YXRlGAIgASgLMhIuZGV2aWNlLkltYWdlU3RhdGVSCmltYWdlU3RhdGUi4wcKCkltYWdlU3RhdGUSGAoHdmVyc2lvbhgBIAEoCVIHdmVyc2lvbhJMCg5kb3dubG9hZF9zdGF0ZRgCIAEoDjIlLmRldmljZS5JbWFnZVN0YXRlLkltYWdlRG93bmxvYWRTdGF0ZVINZG93bmxvYWRTdGF0ZRI9CgZyZWFzb24YAyABKA4yJS5kZXZpY2UuSW1hZ2VTdGF0ZS5JbWFnZUZhaWx1cmVSZWFzb25SBnJlYXNvbhJICgtpbWFnZV9zdGF0ZRgEIAEoDjInLmRldmljZS5JbWFnZVN0YXRlLkltYWdlQWN0aXZhdGlvblN0YXRlUgppbWFnZVN0YXRlItABChJJbWFnZURvd25sb2FkU3RhdGUSFAoQRE9XTkxPQURfVU5LTk9XThAAEhYKEkRPV05MT0FEX1NVQ0NFRURFRBABEhYKEkRPV05MT0FEX1JFUVVFU1RFRBACEhQKEERPV05MT0FEX1NUQVJURUQQAxITCg9ET1dOTE9BRF9GQUlMRUQQBBIYChRET1dOTE9BRF9VTlNVUFBPUlRFRBAFEhcKE0RPV05MT0FEX0NBTkNFTExJTkcQBhIWChJET1dOTE9BRF9DQU5DRUxMRUQQByL0AQoSSW1hZ2VGYWlsdXJlUmVhc29uEgwKCE5PX0VSUk9SEAASDwoLSU5WQUxJRF9VUkwQARIPCgtERVZJQ0VfQlVTWRACEhYKEklOU1VGRklDSUVOVF9TUEFDRRADEhEKDVVOS05PV05fRVJST1IQBBIYChRDQU5DRUxMRURfT05fUkVRVUVTVBAFEhoKFkNBTkNFTExFRF9PTl9PTlVfU1RBVEUQBhIaChZWRU5ET1JfREVWSUNFX01JU01BVENIEAcSFwoTT01DSV9UUkFOU0ZFUl9FUlJPUhAIEhgKFElNQUdFX1JFRlVTRURfQllfT05VEAkimQIKFEltYWdlQWN0aXZhdGlvblN0YXRlEhEKDUlNQUdFX1VOS05PV04QABISCg5JTUFHRV9JTkFDVElWRRABEhQKEElNQUdFX0FDVElWQVRJTkcQAhIQCgxJTUFHRV9BQ1RJVkUQAxIUChBJTUFHRV9DT01NSVRUSU5HEAQSEwoPSU1BR0VfQ09NTUlUVEVEEAUSHQoZSU1BR0VfQUNUSVZBVElPTl9BQk9SVElORxAGEhwKGElNQUdFX0FDVElWQVRJT05fQUJPUlRFRBAHEhkKFUlNQUdFX0NPTU1JVF9BQk9SVElORxAIEhgKFElNQUdFX0NPTU1JVF9BQk9SVEVEEAkSFQoRSU1BR0VfRE9XTkxPQURJTkcQCiK3BQoEUG9ydBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8SFAoFbGFiZWwYAiABKAlSBWxhYmVsEikKBHR5cGUYAyABKA4yFS5kZXZpY2UuUG9ydC5Qb3J0VHlwZVIEdHlwZRI5CgthZG1pbl9zdGF0ZRgFIAEoDjIYLmNvbW1vbi5BZG1pblN0YXRlLlR5cGVzUgphZG1pblN0YXRlEjkKC29wZXJfc3RhdHVzGAYgASgOMhguY29tbW9uLk9wZXJTdGF0dXMuVHlwZXNSCm9wZXJTdGF0dXMSGwoJZGV2aWNlX2lkGAcgASgJUghkZXZpY2VJZBIrCgVwZWVycxgIIAMoCzIVLmRldmljZS5Qb3J0LlBlZXJQb3J0UgVwZWVycxIdCgpyeF9wYWNrZXRzGAkgASgGUglyeFBhY2tldHMSGQoIcnhfYnl0ZXMYCiABKAZSB3J4Qnl0ZXMSGwoJcnhfZXJyb3JzGAsgASgGUghyeEVycm9ycxIdCgp0eF9wYWNrZXRzGAwgASgGUgl0eFBhY2tldHMSGQoIdHhfYnl0ZXMYDSABKAZSB3R4Qnl0ZXMSGwoJdHhfZXJyb3JzGA4gASgGUgh0eEVycm9ycxIwCghvZnBfcG9ydBgPIAEoCzIVLm9wZW5mbG93XzEzLm9mcF9wb3J0UgdvZnBQb3J0GkAKCFBlZXJQb3J0EhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSFwoHcG9ydF9ubxgCIAEoDVIGcG9ydE5vInMKCFBvcnRUeXBlEgsKB1VOS05PV04QABIQCgxFVEhFUk5FVF9OTkkQARIQCgxFVEhFUk5FVF9VTkkQAhILCgdQT05fT0xUEAMSCwoHUE9OX09OVRAEEg0KCVZFTkVUX09MVBAFEg0KCVZFTkVUX09OVRAGIisKBVBvcnRzEiIKBWl0ZW1zGAEgAygLMgwuZGV2aWNlLlBvcnRSBWl0ZW1zItgKCgZEZXZpY2USDgoCaWQYASABKAlSAmlkEhIKBHR5cGUYAiABKAlSBHR5cGUSEgoEcm9vdBgDIAEoCFIEcm9vdBIbCglwYXJlbnRfaWQYBCABKAlSCHBhcmVudElkEiQKDnBhcmVudF9wb3J0X25vGBQgASgNUgxwYXJlbnRQb3J0Tm8SFgoGdmVuZG9yGAUgASgJUgZ2ZW5kb3ISFAoFbW9kZWwYBiABKAlSBW1vZGVsEikKEGhhcmR3YXJlX3ZlcnNpb24YByABKAlSD2hhcmR3YXJlVmVyc2lvbhIpChBmaXJtd2FyZV92ZXJzaW9uGAggASgJUg9maXJtd2FyZVZlcnNpb24SJgoGaW1hZ2VzGAkgASgLMg4uZGV2aWNlLkltYWdlc1IGaW1hZ2VzEiMKDXNlcmlhbF9udW1iZXIYCiABKAlSDHNlcmlhbE51bWJlchIbCgl2ZW5kb3JfaWQYGCABKAlSCHZlbmRvcklkEikKEGFkYXB0ZXJfZW5kcG9pbnQYGSABKAlSD2FkYXB0ZXJFbmRwb2ludBISCgR2bGFuGAwgASgNUgR2bGFuEh8KC21hY19hZGRyZXNzGA0gASgJUgptYWNBZGRyZXNzEiMKDGlwdjRfYWRkcmVzcxgOIAEoCUgAUgtpcHY0QWRkcmVzcxIjCgxpcHY2X2FkZHJlc3MYDyABKAlIAFILaXB2NkFkZHJlc3MSJAoNaG9zdF9hbmRfcG9ydBgVIAEoCUgAUgtob3N0QW5kUG9ydBIdCgpleHRyYV9hcmdzGBcgASgJUglleHRyYUFyZ3MSQAoNcHJveHlfYWRkcmVzcxgTIAEoCzIbLmRldmljZS5EZXZpY2UuUHJveHlBZGRyZXNzUgxwcm94eUFkZHJlc3MSOQoLYWRtaW5fc3RhdGUYECABKA4yGC5jb21tb24uQWRtaW5TdGF0ZS5UeXBlc1IKYWRtaW5TdGF0ZRI5CgtvcGVyX3N0YXR1cxgRIAEoDjIYLmNvbW1vbi5PcGVyU3RhdHVzLlR5cGVzUgpvcGVyU3RhdHVzEhYKBnJlYXNvbhgWIAEoCVIGcmVhc29uEkIKDmNvbm5lY3Rfc3RhdHVzGBIgASgOMhsuY29tbW9uLkNvbm5lY3RTdGF0dXMuVHlwZXNSDWNvbm5lY3RTdGF0dXMSLAoGY3VzdG9tGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIGY3VzdG9tEjEKCnBtX2NvbmZpZ3MYgwEgASgLMhEuZGV2aWNlLlBtQ29uZmlnc1IJcG1Db25maWdzEj8KD2ltYWdlX2Rvd25sb2FkcxiFASADKAsyFS5kZXZpY2UuSW1hZ2VEb3dubG9hZFIOaW1hZ2VEb3dubG9hZHMargIKDFByb3h5QWRkcmVzcxIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEh8KC2RldmljZV90eXBlGAIgASgJUgpkZXZpY2VUeXBlEh0KCmNoYW5uZWxfaWQYAyABKA1SCWNoYW5uZWxJZBIoChBjaGFubmVsX2dyb3VwX2lkGAQgASgNUg5jaGFubmVsR3JvdXBJZBIvChNjaGFubmVsX3Rlcm1pbmF0aW9uGAUgASgJUhJjaGFubmVsVGVybWluYXRpb24SFQoGb251X2lkGAYgASgNUgVvbnVJZBIkCg5vbnVfc2Vzc2lvbl9pZBgHIAEoDVIMb251U2Vzc2lvbklkEikKEGFkYXB0ZXJfZW5kcG9pbnQYCCABKAlSD2FkYXB0ZXJFbmRwb2ludEIJCgdhZGRyZXNzSgQICxAMIsIBChpEZXZpY2VJbWFnZURvd25sb2FkUmVxdWVzdBInCglkZXZpY2VfaWQYASADKAsyCi5jb21tb24uSURSCGRldmljZUlkEiMKBWltYWdlGAIgASgLMg0uZGV2aWNlLkltYWdlUgVpbWFnZRIsChFhY3RpdmF0ZU9uU3VjY2VzcxgDIAEoCFIRYWN0aXZhdGVPblN1Y2Nlc3MSKAoPY29tbWl0T25TdWNjZXNzGAQgASgIUg9jb21taXRPblN1Y2Nlc3MigQEKEkRldmljZUltYWdlUmVxdWVzdBInCglkZXZpY2VfaWQYASADKAsyCi5jb21tb24uSURSCGRldmljZUlkEhgKB3ZlcnNpb24YAiABKAlSB3ZlcnNpb24SKAoPY29tbWl0T25TdWNjZXNzGAMgASgIUg9jb21taXRPblN1Y2Nlc3MiXwoTRGV2aWNlSW1hZ2VSZXNwb25zZRJIChNkZXZpY2VfaW1hZ2Vfc3RhdGVzGAEgAygLMhguZGV2aWNlLkRldmljZUltYWdlU3RhdGVSEWRldmljZUltYWdlU3RhdGVzIqUBChBTZWxmVGVzdFJlc3BvbnNlEj8KBnJlc3VsdBgBIAEoDjInLmRldmljZS5TZWxmVGVzdFJlc3BvbnNlLlNlbGZUZXN0UmVzdWx0UgZyZXN1bHQiUAoOU2VsZlRlc3RSZXN1bHQSCwoHU1VDQ0VTUxAAEgsKB0ZBSUxVUkUQARIRCg1OT1RfU1VQUE9SVEVEEAISEQoNVU5LTk9XTl9FUlJPUhADIi8KB0RldmljZXMSJAoFaXRlbXMYASADKAsyDi5kZXZpY2UuRGV2aWNlUgVpdGVtcyKoAwoUU2ltdWxhdGVBbGFybVJlcXVlc3QSDgoCaWQYASABKAlSAmlkEhwKCWluZGljYXRvchgCIAEoCVIJaW5kaWNhdG9yEhcKB2ludGZfaWQYAyABKAlSBmludGZJZBIkCg5wb3J0X3R5cGVfbmFtZRgEIAEoCVIMcG9ydFR5cGVOYW1lEiIKDW9udV9kZXZpY2VfaWQYBSABKAlSC29udURldmljZUlkEjMKFmludmVyc2VfYml0X2Vycm9yX3JhdGUYBiABKAVSE2ludmVyc2VCaXRFcnJvclJhdGUSFAoFZHJpZnQYByABKAVSBWRyaWZ0EhcKB25ld19lcWQYCCABKAVSBm5ld0VxZBIqChFvbnVfc2VyaWFsX251bWJlchgJIAEoCVIPb251U2VyaWFsTnVtYmVyEkgKCW9wZXJhdGlv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ZAoKDQoFBAUCAgQSBFcEUxcKDAoFBAUCAgUSA1cECgoMCgUEBQICARIDVwsPCgwKBQQFAgIDEgNXEhMKZAoEBAUCAxIDWgQgGisgRGVwcmVjYXRlZCBpbiB2b2x0aGEgMi44LCB3aWxsIGJlIHJlbW92ZWQKIiogY29tYmluZWQgZGF0ZSBhbmQgdGltZSBleHByZXNzZWQgaW4gVVRDLgoKDQoFBAUCAwQSBFoEVxQKDAoFBAUCAwUSA1oECgoMCgUEBQIDARIDWgsbCgwKBQQFAgMDEgNaHh8KmAMKBAQFAgQSA2IEFxrCAiBUaGUgYWN0aXZlIHNvZnR3YXJlIGltYWdlIGlzIG9uZSB0aGF0IGlzIGN1cnJlbnRseSBsb2FkZWQgYW5kIGV4ZWN1dGluZwogaW4gdGhlIE9OVSBvciBjaXJjdWl0IHBhY2suIFVuZGVyIG5vcm1hbCBvcGVyYXRpb24sIG9uZSBzb2Z0d2FyZSBpbWFnZQogaXMgYWx3YXlzIGFjdGl2ZSB3aGlsZSB0aGUgb3RoZXIgaXMgaW5hY3RpdmUuIFVuZGVyIG5vIGNpcmN1bXN0YW5jZXMgYXJlCiBib3RoIHNvZnR3YXJlIGltYWdlcyBhbGxvd2VkIHRvIGJlIGFjdGl2ZSBhdCB0aGUgc2FtZSB0aW1lCiBEZXByZWNhdGVkIGluIHZvbHRoYSAyLjgsIHdpbGwgYmUgcmVtb3ZlZAoiHSBUcnVlIGlmIHRoZSBpbWFnZSBpcyBhY3RpdmUKMicgdXNlIElTTyA4NjAxIGZvcm1hdCBmb3IgZGF0ZSBhbmQgdGltZQoKDQoFBAUCBAQSBGIEWiAKDAoFBAUCBAUSA2IECAoMCgUEBQIEARIDYgkSCgwKBQQFAgQDEgNiFRYKnwIKBAQFAgUSA2gEGhrvASBUaGUgY29tbWl0dGVkIHNvZnR3YXJlIGltYWdlIGlzIGxvYWRlZCBhbmQgZXhlY3V0ZWQgdXBvbiByZWJvb3Qgb2YgdGhlCiBPTlUgYW5kL29yIGNpcmN1aXQgcGFjay4gRHVyaW5nIG5vcm1hbCBvcGVyYXRpb24sIG9uZSBzb2Z0d2FyZSBpbWFnZSBpcwogYWx3YXlzIGNvbW1pdHRlZCwgd2hpbGUgdGhlIG90aGVyIGlzIHVuY29tbWl0dGVkLgogRGVwcmVjYXRlZCBpbiB2b2x0aGEgMi44LCB3aWxsIGJlIHJlbW92ZWQKIiAgVHJ1ZSBpZiB0aGUgaW1hZ2UgaXMgY29tbWl0dGVkCgoNCgUEBQIFBBIEaARiFwoMCgUEBQIFBRIDaAQICgwKBQQFAgUBEgNoCRUKDAoFBAUCBQMSA2gYGQrMAgoEBAUCBhIDbwQWGqACIEEgc29mdHdhcmUgaW1hZ2UgaXMgdmFsaWQgaWYgaXQgaGFzIGJlZW4gdmVyaWZpZWQgdG8gYmUgYW4gZXhlY3V0YWJsZQogY29kZSBpbWFnZS4gVGhlIHZlcmlmaWNhdGlvbiBtZWNoYW5pc20gaXMgbm90IHN1YmplY3QgdG8gc3RhbmRhcmRpemF0aW9uOwogaG93ZXZlciwgaXQgc2hvdWxkIGluY2x1ZGUgYXQgbGVhc3QgYSBkYXRhIGludGVncml0eSAoZS5nLiwgQ1JDKSBjaGVjayBvZgogdGhlIGVudGlyZSBjb2RlIGltYWdlLgogRGVwcmVjYXRlZCBpbiB2b2x0aGEgMi44LCB3aWxsIGJlIHJlbW92ZWQKIhwgVHJ1ZSBpZiB0aGUgaW1hZ2UgaXMgdmFsaWQKCg0KBQQFAgYEEgRvBGgaCgwKBQQFAgYFEgNvBAgKDAoFBAUCBgESA28JEQoMCgUEBQIGAxIDbxQVCngKBAQFAgcSA3QEExprIFVSTCB3aGVyZSB0aGUgaW1hZ2UgaXMgYXZhaWxhYmxlCiBVUkwgTVVTVCBiZSBmdWxseSBxdWFsaWZpZWQsCiBpbmNsdWRpbmcgZmlsZW5hbWUsIHVzZXJuYW1lIGFuZCBwYXNzd29yZAoKDQoFBAUCBwQSBHQEbxYKDAoFBAUCBwUSA3QECgoMCgUEBQIHARIDdAsOCgwKBQQFAgcDEgN0ERIKrQEKBAQFAggSA3kEFhqfASBSZXByZXNlbnRzIHRoZSB2ZW5kb3IvZGV2aWNlIG1mcgogTmVlZHMgdG8gbWF0Y2ggdGhlIHZlbmRvciBvZiB0aGUgZGV2aWNlIHRoZSBpbWFnZSB3aWxsIGJlIGluc3RhbGxlZCBvbgogb3B0aW9uYWwsIGlmIG5vdCBtYXRjaGVkIG5vIGNoZWNrIHdpbGwgYmUgcGVyZm9ybWVkCgoNCgUEBQIIBBIEeQR0EwoMCgUE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BBUCCAQSBusDBOoDFgoNCgUEFQIIBRIE6wMECgoNCgUEFQIIARIE6wMLHAoNCgUEFQIIAxIE6wMfIAoMCgQEFQIJEgTsAwQhCg8KBQQVAgkEEgbsAwTrAyEKDQoFBBUCCQYSBOwDBBEKDQoFBBUCCQESBOwDEhsKDQoFBBUCCQMSBOwDHiBiBnByb3RvMwryLwofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxIPZ29vZ2xlLnByb3RvYnVmIjsKCVRpbWVzdGFtcBIYCgdzZWNvbmRzGAEgASgDUgdzZWNvbmRzEhQKBW5hbm9zGAIgASgFUgVuYW5vc0J+ChNjb20uZ29vZ2xlLnByb3RvYnVmQg5UaW1lc3RhbXBQcm90b1ABWitnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvdGltZXN0YW1w+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSvgtCgcSBR4AiAEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwAfCgkKAggfEgMjAB8KCAoBCBIDJABCCgkKAggLEgMkAEIKCAoBCBIDJQAsCgkKAggBEgMlACwKCAoBCBIDJgAvCgkKAggIEgMmAC8KCAoBCBIDJwAiCgkKAggKEgMnACIKCAoBCBIDKAAhCgkKAggkEgMoACEK8RsKAgQAEgV8AIgBARrjGyBBIFRpbWVzdGFtcCByZXByZXNlbnRzIGEgcG9pbnQgaW4gdGltZSBpbmRlcGVuZGVudCBvZiBhbnkgdGltZSB6b25lIG9yIGxvY2FsCiBjYWxlbmRhciwgZW5jb2RlZCBhcyBhIGNvdW50IG9mIHNlY29uZHMgYW5kIGZyYWN0aW9ucyBvZiBzZWNvbmRzIGF0CiBuYW5vc2Vjb25kIHJlc29sdXRpb24uIFRoZSBjb3VudCBpcyByZWxhdGl2ZSB0byBhbiBlcG9jaCBhdCBVVEMgbWlkbmlnaHQgb24KIEphbnVhcnkgMSwgMTk3MCwgaW4gdGhlIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIgd2hpY2ggZXh0ZW5kcyB0aGUKIEdyZWdvcmlhbiBjYWxlbmRhciBiYWNrd2FyZHMgdG8geWVhciBvbmUuCgogQWxsIG1pbnV0ZXMgYXJlIDYwIHNlY29uZHMgbG9uZy4gTGVhcCBzZWNvbmRzIGFyZSAic21lYXJlZCIgc28gdGhhdCBubyBsZWFwCiBzZWNvbmQgdGFibGUgaXMgbmVlZGVkIGZvciBpbnRlcnByZXRhdGlvbiwgdXNpbmcgYSBbMjQtaG91ciBsaW5lYXIKIHNtZWFyXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS90aW1lL3NtZWFyKS4KCiBUaGUgcmFuZ2UgaXMgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0byA5OTk5LTEyLTMxVDIzOjU5OjU5Ljk5OTk5OTk5OVouIEJ5CiByZXN0cmljdGluZyB0byB0aGF0IHJhbmdlLCB3ZSBlbnN1cmUgdGhhdCB3ZSBjYW4gY29udmVydCB0byBhbmQgZnJvbSBbUkZDCiAzMzM5XShodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzMzOS50eHQpIGRhdGUgc3RyaW5ncy4KCiAjIEV4YW1wbGVzCgogRXhhbXBsZSAxOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFBPU0lYIGB0aW1lKClgLgoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcyh0aW1lKE5VTEwpKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKDApOwoKIEV4YW1wbGUgMjogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBQT1NJWCBgZ2V0dGltZW9mZGF5KClgLgoKICAgICBzdHJ1Y3QgdGltZXZhbCB0djsKICAgICBnZXR0aW1lb2ZkYXkoJnR2LCBOVUxMKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHModHYudHZfc2VjKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKHR2LnR2X3VzZWMgKiAxMDAwKTsKCiBFeGFtcGxlIDM6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gV2luMzIgYEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKClgLgoKICAgICBGSUxFVElNRSBmdDsKICAgICBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgmZnQpOwogICAgIFVJTlQ2NCB0aWNrcyA9ICgoKFVJTlQ2NClmdC5kd0hpZ2hEYXRlVGltZSkgPDwgMzIpIHwgZnQuZHdMb3dEYXRlVGltZTsKCiAgICAgLy8gQSBXaW5kb3dzIHRpY2sgaXMgMTAwIG5hbm9zZWNvbmRzLiBXaW5kb3dzIGVwb2NoIDE2MDEtMDEtMDFUMDA6MDA6MDBaCiAgICAgLy8gaXMgMTE2NDQ0NzM2MDAgc2Vjb25kcyBiZWZvcmUgVW5peCBlcG9jaCAxOTcwLTAxLTAxVDAwOjAwOjAwWi4KICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcygoSU5UNjQpICgodGlja3MgLyAxMDAwMDAwMCkgLSAxMTY0NDQ3MzYwMExMKSk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcygoSU5UMzIpICgodGlja3MgJSAxMDAwMDAwMCkgKiAxMDApKTsKCiBFeGFtcGxlIDQ6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gSmF2YSBgU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKClgLgoKICAgICBsb25nIG1pbGxpcyA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wID0gVGltZXN0YW1wLm5ld0J1aWxkZXIoKS5zZXRTZWNvbmRzKG1pbGxpcyAvIDEwMDApCiAgICAgICAgIC5zZXROYW5vcygoaW50KSAoKG1pbGxpcyAlIDEwMDApICogMTAwMDAwMCkpLmJ1aWxkKCk7CgoKIEV4YW1wbGUgNTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBjdXJyZW50IHRpbWUgaW4gUHl0aG9uLgoKICAgICB0aW1lc3RhbXAgPSBUaW1lc3RhbXAoKQogICAgIHRpbWVzdGFtcC5HZXRDdXJyZW50VGltZSgpCgogIyBKU09OIE1hcHBpbmcKCiBJbiBKU09OIGZvcm1hdCwgdGhlIFRpbWVzdGFtcCB0eXBlIGlzIGVuY29kZWQgYXMgYSBzdHJpbmcgaW4gdGhlCiBbUkZDIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZm9ybWF0LiBUaGF0IGlzLCB0aGUKIGZvcm1hdCBpcyAie3llYXJ9LXttb250aH0te2RheX1Ue2hvdXJ9OnttaW59OntzZWN9Wy57ZnJhY19zZWN9XVoiCiB3aGVyZSB7eWVhcn0gaXMgYWx3YXlzIGV4cHJlc3NlZCB1c2luZyBmb3VyIGRpZ2l0cyB3aGlsZSB7bW9udGh9LCB7ZGF5fSwKIHtob3VyfSwge21pbn0sIGFuZCB7c2VjfSBhcmUgemVyby1wYWRkZWQgdG8gdHdvIGRpZ2l0cyBlYWNoLiBUaGUgZnJhY3Rpb25hbAogc2Vjb25kcywgd2hpY2ggY2FuIGdvIHVwIHRvIDkgZGlnaXRzIChpLmUuIHVwIHRvIDEgbmFub3NlY29uZCByZXNvbHV0aW9uKSwKIGFyZSBvcHRpb25hbC4gVGhlICJaIiBzdWZmaXggaW5kaWNhdGVzIHRoZSB0aW1lem9uZSAoIlVUQyIpOyB0aGUgdGltZXpvbmUKIGlzIHJlcXVpcmVkLiBBIHByb3RvMyBKU09OIHNlcmlhbGl6ZXIgc2hvdWxkIGFsd2F5cyB1c2UgVVRDIChhcyBpbmRpY2F0ZWQgYnkKICJaIikgd2hlbiBwcmludGluZyB0aGUgVGltZXN0YW1wIHR5cGUgYW5kIGEgcHJvdG8zIEpTT04gcGFyc2VyIHNob3VsZCBiZQogYWJsZSB0byBhY2NlcHQgYm90aCBVVEMgYW5kIG90aGVyIHRpbWV6b25lcyAoYXMgaW5kaWNhdGVkIGJ5IGFuIG9mZnNldCkuCgogRm9yIGV4YW1wbGUsICIyMDE3LTAxLTE1VDAxOjMwOjE1LjAxWiIgZW5jb2RlcyAxNS4wMSBzZWNvbmRzIHBhc3QKIDAxOjMwIFVUQyBvbiBKYW51YXJ5IDE1LCAyMDE3LgoKIEluIEphdmFTY3JpcHQsIG9uZSBjYW4gY29udmVydCBhIERhdGUgb2JqZWN0IHRvIHRoaXMgZm9ybWF0IHVzaW5nIHRoZQogc3RhbmRhcmQgW3RvSVNPU3RyaW5nKCldKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGUvdG9JU09TdHJpbmcpCiBtZXRob2QuIEluIFB5dGhvbiwgYSBzdGFuZGFyZCBgZGF0ZXRpbWUuZGF0ZXRpbWVgIG9iamVjdCBjYW4gYmUgY29udmVydGVkCiB0byB0aGlzIGZvcm1hdCB1c2luZyBbYHN0cmZ0aW1lYF0oaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMi9saWJyYXJ5L3RpbWUuaHRtbCN0aW1lLnN0cmZ0aW1lKQogd2l0aCB0aGUgdGltZSBmb3JtYXQgc3BlYyAnJVktJW0tJWRUJUg6JU06JVMuJWZaJy4gTGlrZXdpc2UsIGluIEphdmEsIG9uZQogY2FuIHVzZSB0aGUgSm9kYSBUaW1lJ3MgW2BJU09EYXRlVGltZUZvcm1hdC5kYXRlVGltZSgpYF0oCiBodHRwOi8vd3d3LmpvZGEub3JnL2pvZGEtdGltZS9hcGlkb2NzL29yZy9qb2RhL3RpbWUvZm9ybWF0L0lTT0RhdGVUaW1lRm9ybWF0Lmh0bWwjZGF0ZVRpbWUlMkQlMkQKICkgdG8gb2J0YWluIGEgZm9ybWF0dGVyIGNhcGFibGUgb2YgZ2VuZXJhdGluZyB0aW1lc3RhbXBzIGluIHRoaXMgZm9ybWF0LgoKCgoKCgMEAAESA3wIEQqdAQoEBAACABIEgQECFBqOASBSZXByZXNlbnRzIHNlY29uZHMgb2YgVVRDIHRpbWUgc2luY2UgVW5peCBlcG9jaAogMTk3MC0wMS0wMVQwMDowMDowMFouIE11c3QgYmUgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0bwogOTk5OS0xMi0zMVQyMzo1OTo1OVogaW5jbHVzaXZlLgoKDgoFBAACAAQSBYEBAnwTCg0KBQQAAgAFEgSBAQIHCg0KBQQAAgABEgSBAQgPCg0KBQQAAgADEgSBARITCuUBCgQEAAIBEgSHAQISGtYBIE5vbi1uZWdhdGl2ZSBmcmFjdGlvbnMgb2YgYSBzZWNvbmQgYXQgbmFub3NlY29uZCByZXNvbHV0aW9uLiBOZWdhdGl2ZQogc2Vjb25kIHZhbHVlcyB3aXRoIGZyYWN0aW9ucyBtdXN0IHN0aWxsIGhhdmUgbm9uLW5lZ2F0aXZlIG5hbm9zIHZhbHVlcwogdGhhdCBjb3VudCBmb3J3YXJkIGluIHRpbWUuIE11c3QgYmUgZnJvbSAwIHRvIDk5OSw5OTksOTk5CiBpbmNsdXNpdmUuCgoPCgUEAAIBBBIGhwECgQEUCg0KBQQAAgEFEgSHAQIHCg0KBQQAAgEBEgSHAQgNCg0KBQQAAgEDEgSHARARYgZwcm90bzMKpWgKGnZvbHRoYV9wcm90b3MvZXZlbnRzLnByb3RvEgVldmVudBocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8ingEKEkV2ZW50RmlsdGVyUnVsZUtleSKHAQoTRXZlbnRGaWx0ZXJSdWxlVHlwZRIOCgpmaWx0ZXJfYWxsEAASDAoIY2F0ZWdvcnkQARIQCgxzdWJfY2F0ZWdvcnkQAhISCg5rcGlfZXZlbnRfdHlwZRADEhUKEWNvbmZpZ19ldmVudF90eXBlEAQSFQoRZGV2aWNlX2V2ZW50X3R5cGUQBSJoCg9FdmVudEZpbHRlclJ1bGUSPwoDa2V5GAEgASgOMi0uZXZlbnQuRXZlbnRGaWx0ZXJSdWxlS2V5LkV2ZW50RmlsdGVyUnVsZVR5cGVSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWUinwEKC0V2ZW50RmlsdGVyEg4KAmlkGAEgASgJUgJpZBIWCgZlbmFibGUYAiABKAhSBmVuYWJsZRIbCglkZXZpY2VfaWQYAyABKAlSCGRldmljZUlkEh0KCmV2ZW50X3R5cGUYBCABKAlSCWV2ZW50VHlwZRIsCgVydWxlcxgFIAMoCzIWLmV2ZW50LkV2ZW50RmlsdGVyUnVsZVIFcnVsZXMiPAoMRXZlbnRGaWx0ZXJzEiwKB2ZpbHRlcnMYASADKAsyEi5ldmVudC5FdmVudEZpbHRlclIHZmlsdGVycyI7Cg9Db25maWdFdmVudFR5cGUiKAoFVHlwZXMSBwoDYWRkEAASCgoGcmVtb3ZlEAESCgoGdXBkYXRlEAIiZwoLQ29uZmlnRXZlbnQSMAoEdHlwZRgBIAEoDjIcLmV2ZW50LkNvbmZpZ0V2ZW50VHlwZS5UeXBlc1IEdHlwZRISCgRoYXNoGAIgASgJUgRoYXNoEhIKBGRhdGEYAyABKAlSBGRhdGEiKgoMS3BpRXZlbnRUeXBlIhoKBVR5cGVzEgkKBXNsaWNlEAASBgoCdHMQASKqAgoOTWV0cmljTWV0YURhdGESFAoFdGl0bGUYASABKAlSBXRpdGxlEg4KAnRzGAIgASgBUgJ0cxIqChFsb2dpY2FsX2RldmljZV9pZBgDIAEoCVIPbG9naWNhbERldmljZUlkEhsKCXNlcmlhbF9ubxgEIAEoCVIIc2VyaWFsTm8SGwoJZGV2aWNlX2lkGAUgASgJUghkZXZpY2VJZBI8Cgdjb250ZXh0GAYgAygLMiIuZXZlbnQuTWV0cmljTWV0YURhdGEuQ29udGV4dEVudHJ5Ugdjb250ZXh0EhIKBHV1aWQYByABKAlSBHV1aWQaOgoMQ29udGV4dEVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEijgEKEE1ldHJpY1ZhbHVlUGFpcnMSPgoHbWV0cmljcxgBIAMoCzIkLmV2ZW50Lk1ldHJpY1ZhbHVlUGFpcnMuTWV0cmljc0VudHJ5UgdtZXRyaWNzGjoKDE1ldHJpY3NFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBIsMBChFNZXRyaWNJbmZvcm1hdGlvbhIxCghtZXRhZGF0YRgBIAEoCzIVLmV2ZW50Lk1ldHJpY01ldGFEYXRhUghtZXRhZGF0YRI/CgdtZXRyaWNzGAIgAygLMiUuZXZlbnQuTWV0cmljSW5mb3JtYXRpb24uTWV0cmljc0VudHJ5UgdtZXRyaWNzGjoKDE1ldHJpY3NFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBItoBCghLcGlFdmVudBItCgR0eXBlGAEgASgOMhkuZXZlbnQuS3BpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEg4KAnRzGAIgASgCUgJ0cxI5CghwcmVmaXhlcxgDIAMoCzIdLmV2ZW50LktwaUV2ZW50LlByZWZpeGVzRW50cnlSCHByZWZpeGVzGlQKDVByZWZpeGVzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSLQoFdmFsdWUYAiABKAsyFy5ldmVudC5NZXRyaWNWYWx1ZVBhaXJzUgV2YWx1ZToCOAEigwEKCUtwaUV2ZW50MhItCgR0eXBlGAEgASgOMhkuZXZlbnQuS3BpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEg4KAnRzGAIgASgBUgJ0cxI3CgpzbGljZV9kYXRhGAMgAygLMhguZXZlbnQuTWV0cmljSW5mb3JtYXRpb25SCXNsaWNlRGF0YSLzAQoLRGV2aWNlRXZlbnQSHwoLcmVzb3VyY2VfaWQYASABKAlSCnJlc291cmNlSWQSKgoRZGV2aWNlX2V2ZW50X25hbWUYAiABKAlSD2RldmljZUV2ZW50TmFtZRIgCgtkZXNjcmlwdGlvbhgDIAEoCVILZGVzY3JpcHRpb24SOQoHY29udGV4dBgEIAMoCzIfLmV2ZW50LkRldmljZUV2ZW50LkNvbnRleHRFbnRyeVIHY29udGV4dBo6CgxDb250ZXh0RW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ASLaAgoIUlBDRXZlbnQSEAoDcnBjGAEgASgJUgNycGMSIQoMb3BlcmF0aW9uX2lkGAIgASgJUgtvcGVyYXRpb25JZBIYCgdzZXJ2aWNlGAMgASgJUgdzZXJ2aWNlEhkKCHN0YWNrX2lkGAQgASgJUgdzdGFja0lkEh8KC3Jlc291cmNlX2lkGAUgASgJUgpyZXNvdXJjZUlkEiAKC2Rlc2NyaXB0aW9uGAYgASgJUgtkZXNjcmlwdGlvbhI2Cgdjb250ZXh0GAcgAygLMhwuZXZlbnQuUlBDRXZlbnQuQ29udGV4dEVudHJ5Ugdjb250ZXh0Ei0KBnN0YXR1cxgIIAEoCzIVLmNvbW1vbi5PcGVyYXRpb25SZXNwUgZzdGF0dXMaOgoMQ29udGV4dEVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEidgoNRXZlbnRDYXRlZ29yeSJlCgVUeXBlcxIRCg1DT01NVU5JQ0FUSU9OEAASDwoLRU5WSVJPTk1FTlQQARINCglFUVVJUE1FTlQQAhILCgdTRVJWSUNFEAMSDgoKUFJPQ0VTU0lORxAEEgwKCFNFQ1VSSVRZEAUiUgoQRXZlbnRTdWJDYXRlZ29yeSI+CgVUeXBlcxIHCgNQT04QABIHCgNPTFQQARIHCgNPTlQQAhIHCgNPTlUQAxIHCgNOTkkQBBIICgROT05FEAUiZgoJRXZlbnRUeXBlIlkKBVR5cGVzEhAKDENPTkZJR19FVkVOVBAAEg0KCUtQSV9FVkVOVBABEg4KCktQSV9FVkVOVDIQAhIQCgxERVZJQ0VfRVZFTlQQAxINCglSUENfRVZFTlQQBCLcAgoLRXZlbnRIZWFkZXISDgoCaWQYASABKAlSAmlkEjYKCGNhdGVnb3J5GAIgASgOMhouZXZlbnQuRXZlbnRDYXRlZ29yeS5UeXBlc1IIY2F0ZWdvcnkSQAoMc3ViX2NhdGVnb3J5GAMgASgOMh0uZXZlbnQuRXZlbnRTdWJDYXRlZ29yeS5UeXBlc1ILc3ViQ2F0ZWdvcnkSKgoEdHlwZRgEIAEoDjIWLmV2ZW50LkV2ZW50VHlwZS5UeXBlc1IEdHlwZRIhCgx0eXBlX3ZlcnNpb24YBSABKAlSC3R5cGVWZXJzaW9uEjcKCXJhaXNlZF90cxgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBSCHJhaXNlZFRzEjsKC3JlcG9ydGVkX3RzGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcFIKcmVwb3J0ZWRUcyLGAgoFRXZlbnQSKgoGaGVhZGVyGAEgASgLMhIuZXZlbnQuRXZlbnRIZWFkZXJSBmhlYWRlchI3Cgxjb25maWdfZXZlbnQYAiABKAsyEi5ldmVudC5Db25maWdFdmVudEgAUgtjb25maWdFdmVudBIuCglrcGlfZXZlbnQYAyABKAsyDy5ldmVudC5LcGlFdmVudEgAUghrcGlFdmVudBIxCgprcGlfZXZlbnQyGAQgASgLMhAuZXZlbnQuS3BpRXZlbnQySABSCWtwaUV2ZW50MhI3CgxkZXZpY2VfZXZlbnQYBSABKAsyEi5ldmVudC5EZXZpY2VFdmVudEgAUgtkZXZpY2VFdmVudBIuCglycGNfZXZlbnQYBiABKAsyDy5ldmVudC5SUENFdmVudEgAUghycGNFdmVudEIMCgpldmVudF90eXBlQkwKGm9yZy5vcGVuY29yZC52b2x0aGEuZXZlbnRzWi5naXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vdm9sdGhhSvtMCgcSBQAAoQIBCggKAQwSAwAAEgoICgEIEgMCAEUKCQoCCAsSAwIARQoICgEIEgMDADMKCQoCCAESAwMAMwoICgECEgMFAA4KCQoCAwASAwcAJgoJCgIDARIDCAApCgkKAgMCEgMJACQKCgoCBAASBAwAFgEKCgoDBAABEgMMCBoKDAoE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IHR5cGUsIHRodXMgYWxsb3dpbmcgZWFjaAogZXZlbnQgdHlwZSB0byBldm9sdmUgaW5kZXBlbmRlbnRseS4gVGhlIHZlcnNpb24gc2hvdWxkIGJlIGluIHRoZQogZm9ybWF0IOKAnE1BSk9SLk1JTk9S4oCdIGZvcm1hdCBhbmQgbWlub3IgY2hhbmdlcyBtdXN0IG9ubHkgYmUgYWRkaXRpdmUKIGFuZCBub24tYnJlYWtpbmcuCgoPCgUEEQIEBBIG9QEE7wEdCg0KBQQRAgQFEgT1AQQKCg0KBQQRAgQBEgT1AQsXCg0KBQQRAgQDEgT1ARobCqgCCgQEEQIFEgT8AQQsGpkCIFRpbWVzdGFtcCBhdCB3aGljaCB0aGUgZXZlbnQgd2FzIGZpcnN0IHJhaXNlZC4KIFRoaXMgcmVwcmVzZW50cyB0aGUgVVRDIHRpbWUgc3RhbXAgc2luY2UgZXBvY2ggKGluIHNlY29uZHMpIHdoZW4gdGhlCiB0aGUgZXZlbnQgd2FzIGZpcnN0IHJhaXNlZCBmcm9tIHRoZSBzb3VyY2UgZW50aXR5LgogSWYgdGhlIHNvdXJjZSBlbnRpdHkgZG9lc24ndCBzZW5kIHRoZSByYWlzZWRfdHMsIHRoaXMgc2hhbGwgYmUgc2V0CiB0byB0aW1lc3RhbXAgd2hlbiB0aGUgZXZlbnQgd2FzIHJlY2VpdmVkLgoKDwoFBBECBQQSBvwBBPUBHAoNCgUEEQIFBhIE/AEEHQoNCgUEEQIFARIE/AEeJwoNCgUEEQIFAxIE/AEqKwq9AgoEBBECBhIEgwIELhquAiBUaW1lc3RhbXAgYXQgd2hpY2ggdGhlIGV2ZW50IHdhcyByZXBvcnRlZC4KIFRoaXMgcmVwcmVzZW50cyB0aGUgVVRDIHRpbWUgc3RhbXAgc2luY2UgZXBvY2ggKGluIHNlY29uZHMpIHdoZW4gdGhlCiB0aGUgZXZlbnQgd2FzIHJlcG9ydGVkICh0aGlzIHRpbWUgc3RhbXAgaXMgPj0gcmFpc2VkX3RzKS4KIElmIHRoZSBzb3VyY2UgZW50aXR5IHRoYXQgcmVwb3J0ZWQgdGhpcyBldmVudCBkb2Vzbid0IHNlbmQgdGhlIAogcmVwb3J0ZWRfdHMsIHRoaXMgc2hhbGwgYmUgc2V0IHRvIHRoZSBzYW1lIHZhbHVlIGFzIHJhaXNlZF90cy4KCg8KBQQRAgYEEgaDAgT8ASwKDQoFBBECBgYSBIMCBB0KDQoFBBECBgESBIMCHikKDQoFBBECBgMSBIMCLC0KIAoCBBISBokCAKECARoSCiBFdmVudCBTdHJ1Y3R1cmUKCgsKAwQSARIEiQIIDQocCgQEEgIAEgSLAgQbGg4gZXZlbnQgaGVhZGVyCgoPCgUEEgIABBIGiwIEiQIPCg0KBQQSAgAGEgSLAgQPCg0KBQQSAgABEgSLAhAWCg0KBQQSAgADEgSLAhkaCjoKBAQSCAASBo4CBKACBRoqIG9uZW9mIGV2ZW50IHR5cGVzIHJlZmVycmVkIGJ5IEV2ZW50VHlwZS4KCg0KBQQSCAABEgSOAgoUCiUKBAQSAgESBJACCCUaFyBSZWZlcnMgdG8gQ29uZmlnRXZlbnQKCg0KBQQSAgEGEgSQAggTCg0KBQQSAgEBEgSQAhQgCg0KBQQSAgEDEgSQAiMkCiIKBAQSAgISBJMCCB8aFCBSZWZlcnMgdG8gS3BpRXZlbnQKCg0KBQQSAgIGEgSTAggQCg0KBQQSAgIBEgSTAhEaCg0KBQQSAgIDEgSTAh0eCiMKBAQSAgMSBJYCCCEaFSBSZWZlcnMgdG8gS3BpRXZlbnQyCgoNCgUEEgIDBhIElgIIEQoNCgUEEgIDARIElgISHAoNCgUEEgIDAxIElgIfIAolCgQEEgIEEgSZAgglGhcgUmVmZXJzIHRvIERldmljZUV2ZW50CgoNCgUEEgIEBhIEmQIIEwoNCgUEEgIEARIEmQIUIAoNCgUEEgIEAxIEmQIjJAomCgQEEgIFEgScAggfGhggUmVmZXJzIHRvIGFuIFJQQyBFdmVudAoKDQoFBBICBQYSBJwCCBAKDQoFBBICBQESBJwCERoKDQoFBBICBQMSBJwCHR5iBnByb3RvMwqCIQoedm9sdGhhX3Byb3Rvcy9leHRfY29uZmlnLnByb3RvEgZjb25maWciaQoLQWxhcm1Db25maWcSUAoYb251X2l0dV9wb25fYWxhcm1fY29uZmlnGAEgASgLMhYuY29uZmlnLk9udUl0dVBvbkFsYXJtSABSFG9udUl0dVBvbkFsYXJtQ29uZmlnQggKBmNvbmZpZyK+CQoOT251SXR1UG9uQWxhcm0SFQoGcG9uX25pGAEgASgHUgVwb25OaRIVCgZvbnVfaWQYAiABKAdSBW9udUlkEjkKCGFsYXJtX2lkGAMgASgOMh4uY29uZmlnLk9udUl0dVBvbkFsYXJtLkFsYXJtSURSB2FsYXJtSWQSagoZYWxhcm1fcmVwb3J0aW5nX2NvbmRpdGlvbhgEIAEoDjIuLmNvbmZpZy5PbnVJdHVQb25BbGFybS5BbGFybVJlcG9ydGluZ0NvbmRpdGlvblIXYWxhcm1SZXBvcnRpbmdDb25kaXRpb24SYAoVcmF0ZV90aHJlc2hvbGRfY29uZmlnGAUgASgLMiouY29uZmlnLk9udUl0dVBvbkFsYXJtLlJhdGVUaHJlc2hvbGRDb25maWdIAFITcmF0ZVRocmVzaG9sZENvbmZpZxJUChFyYXRlX3JhbmdlX2NvbmZpZxgGIAEoCzImLmNvbmZpZy5PbnVJdHVQb25BbGFybS5SYXRlUmFuZ2VDb25maWdIAFIPcmF0ZVJhbmdlQ29uZmlnEmMKFnZhbHVlX3RocmVzaG9sZF9jb25maWcYByABKAsyKy5jb25maWcuT251SXR1UG9uQWxhcm0uVmFsdWVUaHJlc2hvbGRDb25maWdIAFIUdmFsdWVUaHJlc2hvbGRDb25maWcaXAoIU29ha1RpbWUSKAoQYWN0aXZlX3NvYWtfdGltZRgBIAEoB1IOYWN0aXZlU29ha1RpbWUSJgoPY2xlYXJfc29ha190aW1lGAIgASgHUg1jbGVhclNvYWtUaW1lGr0BChNSYXRlVGhyZXNob2xkQ29uZmlnEjIKFXJhdGVfdGhyZXNob2xkX3Jpc2luZxgBIAEoBlITcmF0ZVRocmVzaG9sZFJpc2luZxI0ChZyYXRlX3RocmVzaG9sZF9mYWxsaW5nGAIgASgGUhRyYXRlVGhyZXNob2xkRmFsbGluZxI8Cglzb2FrX3RpbWUYAyABKAsyHy5jb25maWcuT251SXR1UG9uQWxhcm0uU29ha1RpbWVSCHNvYWtUaW1lGqMBCg9SYXRlUmFuZ2VDb25maWcSKAoQcmF0ZV9yYW5nZV9sb3dlchgBIAEoBlIOcmF0ZVJhbmdlTG93ZXISKAoQcmF0ZV9yYW5nZV91cHBlchgCIAEoBlIOcmF0ZVJhbmdlVXBwZXISPAoJc29ha190aW1lGAMgASgLMh8uY29uZmlnLk9udUl0dVBvbkFsYXJtLlNvYWtUaW1lUghzb2FrVGltZRp9ChRWYWx1ZVRocmVzaG9sZENvbmZpZxInCg90aHJlc2hvbGRfbGltaXQYASABKAZSDnRocmVzaG9sZExpbWl0EjwKCXNvYWtfdGltZRgCIAEoCzIfLmNvbmZpZy5PbnVJdHVQb25BbGFybS5Tb2FrVGltZVIIc29ha1RpbWUiGQoHQWxhcm1JRBIOCgpSRElfRVJST1JTEAAiUgoXQWxhcm1SZXBvcnRpbmdDb25kaXRpb24SEgoOUkFURV9USFJFU0hPTEQQABIOCgpSQVRFX1JBTkdFEAESEwoPVkFMVUVfVEhSRVNIT0xEEAJCCAoGY29uZmlnQkkKE29yZy5vcGVuY29yZC52b2x0aGFaMmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9leHQvY29uZmlnStgVCgYSBA0ARQEK0QQKAQwSAw0AEhrGBCBDb3B5cmlnaHQgKGMpIDIwMjAgT3BlbiBOZXR3b3JraW5nIEZvdW5kYXRpb24KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUg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c3RhbmNlIjYKEkdldERpc3RhbmNlUmVxdWVzdBIgCgtvbnVEZXZpY2VJZBgBIAEoCVILb251RGV2aWNlSWQiMQoTR2V0RGlzdGFuY2VSZXNwb25zZRIaCghkaXN0YW5jZRgBIAEoDVIIZGlzdGFuY2UiMgoUR2V0T251VW5pSW5mb1JlcXVlc3QSGgoIdW5pSW5kZXgYASABKA1SCHVuaUluZGV4IuEEChVHZXRPbnVVbmlJbmZvUmVzcG9uc2USUAoIYWRtU3RhdGUYASABKA4yNC5leHRlbnNpb24uR2V0T251VW5pSW5mb1Jlc3BvbnNlLkFkbWluaXN0cmF0aXZlU3RhdGVSCGFkbVN0YXRlEk8KCW9wZXJTdGF0ZRgCIAEoDjIxLmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVzcG9uc2UuT3BlcmF0aW9uYWxTdGF0ZVIJb3BlclN0YXRlEk8KCWNvbmZpZ0luZBgDIAEoDjIxLmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVzcG9uc2UuQ29uZmlndXJhdGlvbkluZFIJY29uZmlnSW5kIsIBChBDb25maWd1cmF0aW9uSW5kEgoKBlVOS09XThAAEhIKDlRFTl9CQVNFX1RfRkRYEAESFgoSSFVORFJFRF9CQVNFX1RfRkRYEAISGAoUR0lHQUJJVF9FVEhFUk5FVF9GRFgQAxIWChJURU5fR19FVEhFUk5FVF9GRFgQBBISCg5URU5fQkFTRV9UX0hEWBAFEhYKEkhVTkRSRURfQkFTRV9UX0hEWBAGEhgKFEdJR0FCSVRfRVRIRVJORVRfSERYEAciRwoTQWRtaW5pc3RyYXRpdmVTdGF0ZRIWChJBRE1TVEFURV9VTkRFRklORUQQABIKCgZMT0NLRUQQARIMCghVTkxPQ0tFRBACIkYKEE9wZXJhdGlvbmFsU3RhdGUSFwoTT1BFUlNUQVRFX1VOREVGSU5FRBAAEgsKB0VOQUJMRUQQARIMCghESVNBQkxFRBACIrcBChJHZXRPbHRQb3J0Q291bnRlcnMSFgoGcG9ydE5vGAEgASgNUgZwb3J0Tm8SQgoIcG9ydFR5cGUYAiABKA4yJi5leHRlbnNpb24uR2V0T2x0UG9ydENvdW50ZXJzLlBvcnRUeXBlUghwb3J0VHlwZSJFCghQb3J0VHlwZRIQCgxQb3J0X1VOS05PV04QABIVChFQb3J0X0VUSEVSTkVUX05OSRABEhAKDFBvcnRfUE9OX09MVBACIswDChpHZXRPbHRQb3J0Q291bnRlcnNSZXNwb25zZRIYCgd0eEJ5dGVzGAEgASgEUgd0eEJ5dGVzEhgKB3J4Qnl0ZXMYAiABKARSB3J4Qnl0ZXMSHAoJdHhQYWNrZXRzGAMgASgEUgl0eFBhY2tldHMSHAoJcnhQYWNrZXRzGAQgASgEUglyeFBhY2tldHMSJgoOdHhFcnJvclBhY2tldHMYBSABKARSDnR4RXJyb3JQYWNrZXRzEiYKDnJ4RXJyb3JQYWNrZXRzGAYgASgEUg5yeEVycm9yUGFja2V0cxImCg50eEJjYXN0UGFja2V0cxgHIAEoBFIOdHhCY2FzdFBhY2tldHMSJgoOcnhCY2FzdFBhY2tldHMYCCABKARSDnJ4QmNhc3RQYWNrZXRzEiYKDnR4VWNhc3RQYWNrZXRzGAkgASgEUg50eFVjYXN0UGFja2V0cxImCg5yeFVjYXN0UGFja2V0cxgKIAEoBFIOcnhVY2FzdFBhY2tldHMSJgoOdHhNY2FzdFBhY2tldHMYCyABKARSDnR4TWNhc3RQYWNrZXRzEiYKDnJ4TWNhc3RQYWNrZXRzGAwgASgEUg5yeE1jYXN0UGFja2V0cyJEChRHZXRPbnVQb25PcHRpY2FsSW5mbxIsCgVlbXB0eRgBIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIFZW1wdHkihAIKHEdldE9udVBvbk9wdGljYWxJbmZvUmVzcG9uc2USKgoQcG93ZXJGZWVkVm9sdGFnZRgBIAEoAlIQcG93ZXJGZWVkVm9sdGFnZRIyChRyZWNlaXZlZE9wdGljYWxQb3dlchgCIAEoAlIUcmVjZWl2ZWRPcHRpY2FsUG93ZXISNgoWbWVhbk9wdGljYWxMYXVuY2hQb3dlchgDIAEoAlIWbWVhbk9wdGljYWxMYXVuY2hQb3dlchIqChBsYXNlckJpYXNDdXJyZW50GAQgASgCUhBsYXNlckJpYXNDdXJyZW50EiAKC3RlbXBlcmF0dXJlGAUgASgCUgt0ZW1wZXJhdHVyZSKvAQofR2V0T251RXRoZXJuZXRCcmlkZ2VQb3J0SGlzdG9yeRJSCglkaXJlY3Rpb24YASABKA4yNC5leHRlbnNpb24uR2V0T251RXRoZXJuZXRCcmlkZ2VQb3J0SGlzdG9yeS5EaXJlY3Rpb25SCWRpcmVjdGlvbiI4CglEaXJlY3Rpb24SDQoJVU5ERUZJTkVEEAASDAoIVVBTVFJFQU0QARIOCgpET1dOU1RSRUFNEAIikwUKJ0dldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnlSZXNwb25zZRIeCgpkcm9wRXZlbnRzGAEgASgNUgpkcm9wRXZlbnRzEhYKBm9jdGV0cxgCIAEoDVIGb2N0ZXRzEhgKB3BhY2tldHMYAyABKA1SB3BhY2tldHMSKgoQYnJvYWRjYXN0UGFja2V0cxgEIAEoDVIQYnJvYWRjYXN0UGFja2V0cxIqChBtdWx0aWNhc3RQYWNrZXRzGAUgASgNUhBtdWx0aWNhc3RQYWNrZXRzEiwKEWNyY0Vycm9yZWRQYWNrZXRzGAYgASgNUhFjcmNFcnJvcmVkUGFja2V0cxIqChB1bmRlcnNpemVQYWNrZXRzGAcgASgNUhB1bmRlcnNpemVQYWNrZXRzEigKD292ZXJzaXplUGFja2V0cxgIIAEoDVIPb3ZlcnNpemVQYWNrZXRzEigKD3BhY2tldHM2NG9jdGV0cxgJIAEoDVIPcGFja2V0czY0b2N0ZXRzEjIKFHBhY2tldHM2NVRvMTI3b2N0ZXRzGAogASgNUhRwYWNrZXRzNjVUbzEyN29jdGV0cxI0ChVwYWNrZXRzMTI4VG8yNTVPY3RldHMYCyABKA1SFXBhY2tldHMxMjhUbzI1NU9jdGV0cxI0ChVwYWNrZXRzMjU2VG81MTFvY3RldHMYDCABKA1SFXBhY2tldHMyNTZUbzUxMW9jdGV0cxI2ChZwYWNrZXRzNTEyVG8xMDIzb2N0ZXRzGA0gASgNUhZwYWNrZXRzNTEyVG8xMDIzb2N0ZXRzEjgKF3BhY2tldHMxMDI0VG8xNTE4b2N0ZXRzGA4gASgNUhdwYWNrZXRzMTAyNFRvMTUxOG9jdGV0cyJAChBHZXRPbnVGZWNIaXN0b3J5EiwKBWVtcHR5GAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgVlbXB0eSLyAQoYR2V0T251RmVjSGlzdG9yeVJlc3BvbnNlEiYKDmNvcnJlY3RlZEJ5dGVzGAEgASgNUg5jb3JyZWN0ZWRCeXRlcxIuChJjb3JyZWN0ZWRDb2RlV29yZHMYAiABKA1SEmNvcnJlY3RlZENvZGVXb3JkcxIeCgpmZWNTZWNvbmRzGAMgASgNUgpmZWNTZWNvbmRzEiYKDnRvdGFsQ29kZVdvcmRzGAQgASgNUg50b3RhbENvZGVXb3JkcxI2ChZ1bmNvcnJlY3RhYmxlQ29kZVdvcmRzGAUgASgNUhZ1bmNvcnJlY3RhYmxlQ29kZVdvcmRzIkcKFUdldE9udUNvdW50ZXJzUmVxdWVzdBIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZCKNAQolR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVxdWVzdBIgCgtvbnVEZXZpY2VJZBgBIAEoCVILb251RGV2aWNlSWQSHAoIdW5pSW5kZXgYAiABKA1IAFIIdW5pSW5kZXgSFAoFcmVzZXQYAyABKAhSBXJlc2V0Qg4KDGlzX3VuaV9pbmRleCJDChFHZXRSeFBvd2VyUmVxdWVzdBIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZCLkDAoWR2V0T251Q291bnRlcnNSZXNwb25zZRIZCgdpbnRmX2lkGAEgASgHSABSBmludGZJZBIXCgZvbnVfaWQYAiABKAdIAVIFb251SWQSJwoOcG9zaXRpdmVfZHJpZnQYAyABKAZIAlINcG9zaXRpdmVEcmlmdBInCg5uZWdhdGl2ZV9kcmlmdBgEIAEoBkgDUg1uZWdhdGl2ZURyaWZ0EjoKGGRlbGltaXRlcl9taXNzX2RldGVjdGlvbhgFIAEoBkgEUhZkZWxpbWl0ZXJNaXNzRGV0ZWN0aW9uEh8KCmJpcF9lcnJvcnMYBiABKAZIBVIJYmlwRXJyb3JzEh0KCWJpcF91bml0cxgHIAEoBkgGUghiaXBVbml0cxI0ChVmZWNfY29ycmVjdGVkX3N5bWJvbHMYCCABKAZIB1ITZmVjQ29ycmVjdGVkU3ltYm9scxI4ChdmZWNfY29kZXdvcmRzX2NvcnJlY3RlZBgJIAEoBkgIUhVmZWNDb2Rld29yZHNDb3JyZWN0ZWQSQAobZmVjX2NvZGV3b3Jkc191bmNvcnJlY3RhYmxlGAogASgGSAlSGWZlY0NvZGV3b3Jkc1VuY29ycmVjdGFibGUSJQoNZmVjX2NvZGV3b3JkcxgLIAEoBkgKUgxmZWNDb2Rld29yZHMSMAoTZmVjX2NvcnJlY3RlZF91bml0cxgMIAEoBkgLUhFmZWNDb3JyZWN0ZWRVbml0cxIoCg94Z2VtX2tleV9lcnJvcnMYDSABKAZIDFINeGdlbUtleUVycm9ycxIdCgl4Z2VtX2xvc3MYDiABKAZIDVIIeGdlbUxvc3MSKAoPcnhfcGxvYW1zX2Vycm9yGA8gASgGSA5SDXJ4UGxvYW1zRXJyb3ISLQoScnhfcGxvYW1zX25vbl9pZGxlGBAgASgGSA9SD3J4UGxvYW1zTm9uSWRsZRIZCgdyeF9vbWNpGBEgASgGSBBSBnJ4T21jaRIZCgd0eF9vbWNpGBIgASgGSBFSBnR4T21jaRI6ChlyeF9vbWNpX3BhY2tldHNfY3JjX2Vycm9yGBMgASgGSBJSFXJ4T21jaVBhY2tldHNDcmNFcnJvchIbCghyeF9ieXRlcxgUIAEoBkgTUgdyeEJ5dGVzEh8KCnJ4X3BhY2tldHMYFSABKAZIFFIJcnhQYWNrZXRzEhsKCHR4X2J5dGVzGBYgASgGSBVSB3R4Qnl0ZXMSHwoKdHhfcGFja2V0cxgXIAEoBkgWUgl0eFBhY2tldHMSIwoMYmVyX3JlcG9ydGVkGBggASgGSBdSC2JlclJlcG9ydGVkEiEKC2xjZGdfZXJyb3JzGBkgASgGSBhSCmxjZGdFcnJvcnMSHwoKcmRpX2Vycm9ycxgaIAEoBkgZUglyZGlFcnJvcnMSHgoJdGltZXN0YW1wGBsgASgHSBpSCXRpbWVzdGFtcEIMCgppc19pbnRmX2lkQgsKCWlzX29udV9pZEITChFpc19wb3NpdGl2ZV9kcmlmdEITChFpc19uZWdhdGl2ZV9kcmlmdEIdChtpc19kZWxpbWl0ZXJfbWlzc19kZXRlY3Rpb25CDwoNaXNfYmlwX2Vycm9yc0IOCgxpc19iaXBfdW5pdHNCGgoYaXNfZmVjX2NvcnJlY3RlZF9zeW1ib2xzQhwKGmlzX2ZlY19jb2Rld29yZHNfY29ycmVjdGVkQiAKHmlzX2ZlY19jb2Rld29yZHNfdW5jb3JyZWN0YWJsZUISChBpc19mZWNfY29kZXdvcmRzQhgKFmlzX2ZlY19jb3JyZWN0ZWRfdW5pdHNCFAoSaXNfeGdlbV9rZXlfZXJyb3JzQg4KDGlzX3hnZW1fbG9zc0IUChJpc19yeF9wbG9hbXNfZXJyb3JCFwoVaXNfcnhfcGxvYW1zX25vbl9pZGxlQgwKCmlzX3J4X29tY2lCDAoKaXNfdHhfb21jaUIeChxpc19yeF9vbWNpX3BhY2tldHNfY3JjX2Vycm9yQg0KC2lzX3J4X2J5dGVzQg8KDWlzX3J4X3BhY2tldHNCDQoLaXNfdHhfYnl0ZXNCDwoNaXNfdHhfcGFja2V0c0IRCg9pc19iZXJfcmVwb3J0ZWRCEAoOaXNfbGNkZ19lcnJvcnNCDwoNaXNfcmRpX2Vycm9yc0IOCgxpc190aW1lc3RhbXAijAUKG09tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbRIfCgtkcm9wX2V2ZW50cxgBIAEoBlIKZHJvcEV2ZW50cxIWCgZvY3RldHMYAiABKAZSBm9jdGV0cxIWCgZmcmFtZXMYAyABKAZSBmZyYW1lcxIpChBicm9hZGNhc3RfZnJhbWVzGAQgASgGUg9icm9hZGNhc3RGcmFtZXMSKQoQbXVsdGljYXN0X2ZyYW1lcxgFIAEoBlIPbXVsdGljYXN0RnJhbWVzEiwKEmNyY19lcnJvcmVkX2ZyYW1lcxgGIAEoBlIQY3JjRXJyb3JlZEZyYW1lcxIpChB1bmRlcnNpemVfZnJhbWVzGAcgASgGUg91bmRlcnNpemVGcmFtZXMSJwoPb3ZlcnNpemVfZnJhbWVzGAggASgGUg5vdmVyc2l6ZUZyYW1lcxIoChBmcmFtZXNfNjRfb2N0ZXRzGAkgASgGUg5mcmFtZXM2NE9jdGV0cxI0ChdmcmFtZXNfNjVfdG9fMTI3X29jdGV0cxgKIAEoBlITZnJhbWVzNjVUbzEyN09jdGV0cxI2ChhmcmFtZXNfMTI4X3RvXzI1NV9vY3RldHMYCyABKAZSFGZyYW1lczEyOFRvMjU1T2N0ZXRzEjYKGGZyYW1lc18yNTZfdG9fNTExX29jdGV0cxgMIAEoBlIUZnJhbWVzMjU2VG81MTFPY3RldHMSOAoZZnJhbWVzXzUxMl90b18xMDIzX29jdGV0cxgNIAEoBlIVZnJhbWVzNTEyVG8xMDIzT2N0ZXRzEjoKGmZyYW1lc18xMDI0X3RvXzE1MThfb2N0ZXRzGA4gASgGUhZmcmFtZXMxMDI0VG8xNTE4T2N0ZXRzIvQCCiZHZXRPbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG1SZXNwb25zZRJCCgh1cHN0cmVhbRgBIAEoCzImLmV4dGVuc2lvbi5PbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG1SCHVwc3RyZWFtEkYKCmRvd25zdHJlYW0YAiABKAsyJi5leHRlbnNpb24uT21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUgpkb3duc3RyZWFtEosBCiZvbWNpX2V0aGVybmV0X2ZyYW1lX2V4dGVuZGVkX3BtX2Zvcm1hdBgDIAEoDjI4LmV4dGVuc2lvbi5HZXRPbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG1SZXNwb25zZS5Gb3JtYXRSIW9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbUZvcm1hdCIwCgZGb3JtYXQSEgoOVEhJUlRZX1RXT19CSVQQABISCg5TSVhUWV9GT1VSX0JJVBABIpgBChJHZXRSeFBvd2VyUmVzcG9uc2USFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSHwoLZmFpbF9yZWFzb24YBCABKAlSCmZhaWxSZWFzb24SGQoIcnhfcG93ZXIYBSABKAFSB3J4UG93ZXIigwUKD0dldFZhbHVlUmVxdWVzdBI7CghkaXN0YW5jZRgBIAEoCzIdLmV4dGVuc2lvbi5HZXREaXN0YW5jZVJlcXVlc3RIAFIIZGlzdGFuY2USOwoHdW5pSW5mbxgCIAEoCzIfLmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVxdWVzdEgAUgd1bmlJbmZvEkEKC29sdFBvcnRJbmZvGAMgASgLMh0uZXh0ZW5zaW9uLkdldE9sdFBvcnRDb3VudGVyc0gAUgtvbHRQb3J0SW5mbxJJCg5vbnVPcHRpY2FsSW5mbxgEIAEoCzIfLmV4dGVuc2lvbi5HZXRPbnVQb25PcHRpY2FsSW5mb0gAUg5vbnVPcHRpY2FsSW5mbxJSCg1ldGhCcmlkZ2VQb3J0GAUgASgLMiouZXh0ZW5zaW9uLkdldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnlIAFINZXRoQnJpZGdlUG9ydBI9CgpmZWNIaXN0b3J5GAYgASgLMhsuZXh0ZW5zaW9uLkdldE9udUZlY0hpc3RvcnlIAFIKZmVjSGlzdG9yeRJCCgpvbnVQb25JbmZvGAcgASgLMiAuZXh0ZW5zaW9uLkdldE9udUNvdW50ZXJzUmVxdWVzdEgAUgpvbnVQb25JbmZvEkwKB29udUluZm8YCCABKAsyMC5leHRlbnNpb24uR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVxdWVzdEgAUgdvbnVJbmZvEjgKB3J4UG93ZXIYCSABKAsyHC5leHRlbnNpb24uR2V0UnhQb3dlclJlcXVlc3RIAFIHcnhQb3dlckIJCgdyZXF1ZXN0IqoIChBHZXRWYWx1ZVJlc3BvbnNlEjoKBnN0YXR1cxgBIAEoDjIiLmV4dGVuc2lvbi5HZXRWYWx1ZVJlc3BvbnNlLlN0YXR1c1IGc3RhdHVzEkUKCWVyclJlYXNvbhgCIAEoDjInLmV4dGVuc2lvbi5HZXRWYWx1ZVJlc3BvbnNlLkVycm9yUmVhc29uUgllcnJSZWFzb24SPAoIZGlzdGFuY2UYAyABKAsyHi5leHRlbnNpb24uR2V0RGlzdGFuY2VSZXNwb25zZUgAUghkaXN0YW5jZRI8Cgd1bmlJbmZvGAQgASgLMiAuZXh0ZW5zaW9uLkdldE9udVVuaUluZm9SZXNwb25zZUgAUgd1bmlJbmZvEksKDHBvcnRDb3V0bmVycxgFIAEoCzIlLmV4dGVuc2lvbi5HZXRPbHRQb3J0Q291bnRlcnNSZXNwb25zZUgAUgxwb3J0Q291dG5lcnMSUQoOb251T3B0aWNhbEluZm8YBiABKAsyJy5leHRlbnNpb24uR2V0T251UG9uT3B0aWNhbEluZm9SZXNwb25zZUgAUg5vbnVPcHRpY2FsSW5mbxJiChFldGhCcmlkZ2VQb3J0SW5mbxgHIAEoCzIyLmV4dGVuc2lvbi5HZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5UmVzcG9uc2VIAFIRZXRoQnJpZGdlUG9ydEluZm8SRQoKZmVjSGlzdG9yeRgIIAEoCzIjLmV4dGVuc2lvbi5HZXRPbnVGZWNIaXN0b3J5UmVzcG9uc2VIAFIKZmVjSGlzdG9yeRJLCg5vbnVQb25Db3VudGVycxgJIAEoCzIhLmV4dGVuc2lvbi5HZXRPbnVDb3VudGVyc1Jlc3BvbnNlSABSDm9udVBvbkNvdW50ZXJzElUKC29udUNvdW50ZXJzGAogASgLMjEuZXh0ZW5zaW9uLkdldE9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVJlc3BvbnNlSABSC29udUNvdW50ZXJzEjkKB3J4UG93ZXIYCyABKAsyHS5leHRlbnNpb24uR2V0UnhQb3dlclJlc3BvbnNlSABSB3J4UG93ZXIiMQoGU3RhdHVzEhQKEFNUQVRVU19VTkRFRklORUQQABIGCgJPSxABEgkKBUVSUk9SEAIirQEKC0Vycm9yUmVhc29uEhQKEFJFQVNPTl9VTkRFRklORUQQABIPCgtVTlNVUFBPUlRFRBABEhUKEUlOVkFMSURfREVWSUNFX0lEEAISFQoRSU5WQUxJRF9QT1JUX1RZUEUQAxILCgdUSU1FT1VUEAQSFAoQSU5WQUxJRF9SRVFfVFlQRRAFEhIKDklOVEVSTkFMX0VSUk9SEAYSEgoOSU5WQUxJRF9ERVZJQ0UQB0IKCghyZXNwb25zZSJWCg9TZXRWYWx1ZVJlcXVlc3QSOAoMYWxhcm1fY29uZmlnGAEgASgLMhMuY29uZmlnLkFsYXJtQ29uZmlnSABSC2FsYXJtQ29uZmlnQgkKB3JlcXVlc3Qi/gEKEFNldFZhbHVlUmVzcG9uc2USOgoGc3RhdHVzGAEgASgOMiIuZXh0ZW5zaW9uLlNldFZhbHVlUmVzcG9uc2UuU3RhdHVzUgZzdGF0dXMSRQoJZXJyUmVhc29uGAIgASgOMicuZXh0ZW5zaW9uLlNldFZhbHVlUmVzcG9uc2UuRXJyb3JSZWFzb25SCWVyclJlYXNvbiIxCgZTdGF0dXMSFAoQU1RBVFVTX1VOREVGSU5FRBAAEgYKAk9LEAESCQoFRVJST1IQAiI0CgtFcnJvclJlYXNvbhIUChBSRUFTT05fVU5ERUZJTkVEEAASDwoLVU5TVVBQT1JURUQQASJpChVTaW5nbGVHZXRWYWx1ZVJlcXVlc3QSGgoIdGFyZ2V0SWQYASABKAlSCHRhcmdldElkEjQKB3JlcXVlc3QYAiABKAsyGi5leHRlbnNpb24uR2V0VmFsdWVSZXF1ZXN0UgdyZXF1ZXN0IlEKFlNpbmdsZUdldFZhbHVlUmVzcG9uc2USNwoIcmVzcG9uc2UYASABKAsyGy5leHRlbnNpb24uR2V0VmFsdWVSZXNwb25zZVIIcmVzcG9uc2UiaQoVU2luZ2xlU2V0VmFsdWVSZXF1ZXN0EhoKCHRhcmdldElkGAEgASgJUgh0YXJnZXRJZBI0CgdyZXF1ZXN0GAIgASgLMhouZXh0ZW5zaW9uLlNldFZhbHVlUmVxdWVzdFIHcmVxdWVzdCJRChZTaW5nbGVTZXRWYWx1ZVJlc3BvbnNlEjcKCHJlc3BvbnNlGAEgASgLMhsuZXh0ZW5zaW9uLlNldFZhbHVlUmVzcG9uc2VSCHJlc3BvbnNlMrMBCglFeHRlbnNpb24SUgoLR2V0RXh0VmFsdWUSIC5leHRlbnNpb24uU2luZ2xlR2V0VmFsdWVSZXF1ZXN0GiEuZXh0ZW5zaW9uLlNpbmdsZUdldFZhbHVlUmVzcG9uc2USUgoLU2V0RXh0VmFsdWUSIC5leHRlbnNpb24uU2luZ2xlU2V0VmFsdWVSZXF1ZXN0GiEuZXh0ZW5zaW9uLlNpbmdsZVNldFZhbHVlUmVzcG9uc2VCUgodb3JnLm9wZW5jb3JkLnZvbHRoYS5leHRlbnNpb25aMWdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9leHRlbnNpb25KtHkKBxIFDgCfAwEK0QQKAQwSAw4AEjLGBCBDb3B5cmlnaHQgKGMpIDIwMTggT3BlbiBOZXR3b3JraW5nIEZvdW5kYXRpb24KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3Jn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X21pYl9kYi5wcm90bxIEb21jaSI8ChBNaWJBdHRyaWJ1dGVEYXRhEhIKBG5hbWUYASABKAlSBG5hbWUSFAoFdmFsdWUYAiABKAlSBXZhbHVlIqABCg9NaWJJbnN0YW5jZURhdGESHwoLaW5zdGFuY2VfaWQYASABKA1SCmluc3RhbmNlSWQSGAoHY3JlYXRlZBgCIAEoCVIHY3JlYXRlZBIaCghtb2RpZmllZBgDIAEoCVIIbW9kaWZpZWQSNgoKYXR0cmlidXRlcxgEIAMoCzIWLm9tY2kuTWliQXR0cmlidXRlRGF0YVIKYXR0cmlidXRlcyJeCgxNaWJDbGFzc0RhdGESGQoIY2xhc3NfaWQYASABKA1SB2NsYXNzSWQSMwoJaW5zdGFuY2VzGAIgAygLMhUub21jaS5NaWJJbnN0YW5jZURhdGFSCWluc3RhbmNlcyI+Cg1NYW5hZ2VkRW50aXR5EhkKCGNsYXNzX2lkGAEgASgNUgdjbGFzc0lkEhIKBG5hbWUYAiABKAlSBG5hbWUiMAoLTWVzc2FnZVR5cGUSIQoMbWVzc2FnZV90eXBlGAEgASgNUgttZXNzYWdlVHlwZSLQAgoNTWliRGV2aWNlRGF0YRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhgKB2NyZWF0ZWQYAiABKAlSB2NyZWF0ZWQSJAoObGFzdF9zeW5jX3RpbWUYAyABKAlSDGxhc3RTeW5jVGltZRIiCg1taWJfZGF0YV9zeW5jGAQgASgNUgttaWJEYXRhU3luYxIYCgd2ZXJzaW9uGAUgASgNUgd2ZXJzaW9uEiwKB2NsYXNzZXMYBiADKAsyEi5vbWNpLk1pYkNsYXNzRGF0YVIHY2xhc3NlcxI+ChBtYW5hZ2VkX2VudGl0aWVzGAcgAygLMhMub21jaS5NYW5hZ2VkRW50aXR5Ug9tYW5hZ2VkRW50aXRpZXMSNgoNbWVzc2FnZV90eXBlcxgIIAMoCzIRLm9tY2kuTWVzc2FnZVR5cGVSDG1lc3NhZ2VUeXBlcyIuChFPcGVuT21jaUV2ZW50VHlwZSIZCgVUeXBlcxIQCgxzdGF0ZV9jaGFuZ2UQACJWCg1PcGVuT21jaUV2ZW50EjEKBHR5cGUYASABKA4yHS5vbWNpLk9wZW5PbWNpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEhIKBGRhdGEYAiABKAlSBGRhdGFCSAoYb3JnLm9wZW5jb3JkLnZvbHRoYS5vbWNpWixnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vb21jaUq3EwoGEgQPAEkBCt4ECgEMEgMPABIa0wQKIENvcHlyaWdodCAyMDE4IC0gcHJlc2VudCB0aGUgb3JpZ2luYWwgYXV0aG9yIG9yIGF1dGhvcnMuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgoKCggKAQgSAxEAQwoJCgIICxIDEQBDCggKAQgSAxIAMQoJCgIIARIDEgAxCggKAQISAxQADQoKCgIEABIEFgAZAQoKCgMEAAESAxYIGAoLCgQEAAIAEgMXBBsKDQoFBAACAAQSBBcEFhoKDAoFBAACAAUSAxcECgoMCgUEAAIAARIDFwsPCgwKBQQAAgADEgMXGRoKCwoEBAACARIDGAQbCg0KBQQAAgEEEgQYBBcbCgwKBQQAAgEFEgMYBAoKDAoFBAACAQESAxgLEAoMCgUEAAIBAxIDGBkaCgoKAgQBEgQbACEBCgoKAwQBARIDGwgXCgsKBAQBAgASAxwEIAoNCgUEAQIABBIEHAQbGQoMCgUEAQIABRIDHAQKCgwKBQQBAgABEgMcCxYKDAoFBAECAAMSAxweHwoLCgQEAQIBEgMdBCAKDQoFBAECAQQSBB0EHCAKDAoFBAECAQUSAx0ECgoMCgUEAQIBARIDHQsSCgwKBQQBAgEDEgMdHh8KCwoEBAECAhIDHgQgCg0KBQQBAgIEEgQeBB0gCgwKBQQBAgIFEgMeBAoKDAoFBAECAgESAx4LEwoMCgUEAQICAxIDHh4fCgsKBAQBAgMSAyAELQoMCgUEAQIDBBIDIAQMCgwKBQQBAgMGEgMgDR0KDAoFBAECAwESAyAeKAoMCgUEAQIDAxIDICssCgoKAgQCEgQjACcBCgoKAwQCARIDIwgUCgsKBAQCAgASAyQEIAoNCgUEAgIABBIEJAQjFgoMCgUEAgIABRIDJAQKCgwKBQQCAgABEgMkCxMKDAoFBAICAAMSAyQeHwoLCgQEAgIBEgMmBCoKDAoFBAICAQQSAyYEDAoMCgUEAgIBBhIDJg0cCgwKBQQCAgEBEgMmHSYKDAoFBAICAQMSAyYoKQoKCgIEAxIEKQAsAQoKCgMEAwESAykIFQoLCgQEAwIAEgMqBBkKDQoFBAMCAAQSBCoEKRcKDAoFBAMCAAUSAyoECgoMCgUEAwIAARIDKgsTCgwKBQQDAgADEgMqFxgKCwoEBAMCARIDKwQZCg0KBQQDAgEEEgQrBCoZCgwKBQQDAgEFEgMrBAoKDAoFBAMCAQESAysLDwoMCgUEAwIBAxIDKxcYCgoKAgQEEgQuADABCgoKAwQEARIDLggTCgsKBAQEAgASAy8EHAoNCgUEBAIABBIELwQuFQoMCgUEBAIABRIDLwQKCgwKBQQEAgABEgMvCxcKDAoFBAQCAAMSAy8aGwoKCgIEBRIEMgA9AQoKCgMEBQESAzIIFQoLCgQEBQIAEgMzBCAKDQoFBAUCAAQSBDMEMhcKDAoFBAUCAAUSAzMECgoMCgUEBQIAARIDMwsUCgwKBQQFAgADEgMzHh8KCwoEBAUCARIDNAQgCg0KBQQFAgEEEgQ0BDMgCgwKBQQFAgEFEgM0BAoKDAoFBAUCAQESAzQLEgoMCgUEBQIBAxIDNB4fCgsKBAQFAgISAzUEIAoNCgUEBQICBBIENQQ0IAoMCgUEBQICBRIDNQQKCgwKBQQFAgIBEgM1CxkKDAoFBAUCAgMSAzUeHwoLCgQEBQIDEgM2BCAKDQoFBAUCAwQSBDYENSAKDAoFBAUCAwUSAzYECgoMCgUEBQIDARIDNgsYCgwKBQQFAgMDEgM2Hh8KCwoEBAUCBBIDNwQgCg0KBQQFAgQEEgQ3BDYgCgwKBQQFAgQFEgM3BAoKDAoFBAUCBAESAzcLEgoMCgUEBQIEAxIDNx4fCgsKBAQFAgUSAzkEJgoMCgUEBQIFBBIDOQQMCgwKBQQFAgUGEgM5DRkKDAoFBAUCBQESAzkaIQoMCgUEBQIFAxIDOSQlCgsKBAQFAgYSAzsEMAoMCgUEBQIGBBIDOwQMCgwKBQQFAgYGEgM7DRoKDAoFBAUCBgESAzsbKwoMCgUEBQIGAxIDOy4vCgsKBAQFAgcSAzwEKwoMCgUEBQIHBBIDPAQMCgwKBQQFAgcGEgM8DRgKDAoFBAUCBwESAzwZJgoMCgUEBQIHAxIDPCkqCgoKAgQGEgQ/AEMBCgoKAwQGARIDPwgZCgwKBAQGBAASBEAEQgUKDAoFBAYEAAESA0AJDgpACgYEBgQAAgASA0EIGSIxIEEgc3RhdGUgbWFjaGluZSBoYXMgdHJhbnNpdGlvbmVkIHRvIGEgbmV3IHN0YXRlCgoOCgcEBgQAAgABEgNBCBQKDgoHBAYEAAIAAhIDQRcYCgoKAgQHEgRFAEkBCgoKAwQHARIDRQgVCgsKBAQHAgASA0YEJQoNCgUEBwIABBIERgRFFwoMCgUEBwIABhIDRgQbCgwKBQQHAgABEgNGHCAKDAoFBAcCAAMSA0YjJAouCgQEBwIBEgNIBBQiISBhc3NvY2lhdGVkIGRhdGEsIGluIGpzb24gZm9ybWF0CgoNCgUEBwIBBBIESARGJQoMCgUEBwIBBRIDSAQKCgwKBQQHAgEBEgNICw8KDAoFBAcCAQMSA0gSE2IGcHJvdG8zCpgcCiF2b2x0aGFfcHJvdG9zL29tY2lfYWxhcm1fZGIucHJvdG8SBG9tY2kiPgoSQWxhcm1BdHRyaWJ1dGVEYXRhEhIKBG5hbWUYASABKAlSBG5hbWUSFAoFdmFsdWUYAiABKAlSBXZhbHVlIqQBChFBbGFybUluc3RhbmNlRGF0YRIfCgtpbnN0YW5jZV9pZBgBIAEoDVIKaW5zdGFuY2VJZBIYCgdjcmVhdGVkGAIgASgJUgdjcmVhdGVkEhoKCG1vZGlmaWVkGAMgASgJUghtb2RpZmllZBI4CgphdHRyaWJ1dGVzGAQgAygLMhgub21jaS5BbGFybUF0dHJpYnV0ZURhdGFSCmF0dHJpYnV0ZXMiYgoOQWxhcm1DbGFzc0RhdGESGQoIY2xhc3NfaWQYASABKA1SB2NsYXNzSWQSNQoJaW5zdGFuY2VzGAIgAygLMhcub21jaS5BbGFybUluc3RhbmNlRGF0YVIJaW5zdGFuY2VzIkMKEkFsYXJtTWFuYWdlZEVudGl0eRIZCghjbGFzc19pZBgBIAEoDVIHY2xhc3NJZBISCgRuYW1lGAIgASgJUgRuYW1lIjUKEEFsYXJtTWVzc2FnZVR5cGUSIQoMbWVzc2FnZV90eXBlGAEgASgNUgttZXNzYWdlVHlwZSLqAgoPQWxhcm1EZXZpY2VEYXRhEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSGAoHY3JlYXRlZBgCIAEoCVIHY3JlYXRlZBIuChNsYXN0X2FsYXJtX3NlcXVlbmNlGAMgASgNUhFsYXN0QWxhcm1TZXF1ZW5jZRIkCg5sYXN0X3N5bmNfdGltZRgEIAEoCVIMbGFzdFN5bmNUaW1lEhgKB3ZlcnNpb24YBSABKA1SB3ZlcnNpb24SLgoHY2xhc3NlcxgGIAMoCzIULm9tY2kuQWxhcm1DbGFzc0RhdGFSB2NsYXNzZXMSQwoQbWFuYWdlZF9lbnRpdGllcxgHIAMoCzIYLm9tY2kuQWxhcm1NYW5hZ2VkRW50aXR5Ug9tYW5hZ2VkRW50aXRpZXMSOwoNbWVzc2FnZV90eXBlcxgIIAMoCzIWLm9tY2kuQWxhcm1NZXNzYWdlVHlwZVIMbWVzc2FnZVR5cGVzIj8KFkFsYXJtT3Blbk9tY2lFdmVudFR5cGUiJQoRT3Blbk9tY2lFdmVudFR5cGUSEAoMc3RhdGVfY2hhbmdlEAAibAoSQWxhcm1PcGVuT21jaUV2ZW50EkIKBHR5cGUYASABKA4yLi5vbWNpLkFsYXJtT3Blbk9tY2lFdmVudFR5cGUuT3Blbk9tY2lFdmVudFR5cGVSBHR5cGUSEgoEZGF0YRgCIAEoCVIEZGF0YUJIChhvcmcub3BlbmNvcmQudm9sdGhhLm9tY2laLGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9vbWNpSrcTCgYSBA8ASwEK3gQKAQwSAw8AEhrTBAogQ29weXJpZ2h0IDIwMTggLSBwcmVzZW50IHRoZSBvcmlnaW5hbCBhdXRob3Igb3IgYXV0aG9ycy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgoKCAoBCBIDEQBDCgkKAggLEgMRAEMKCAoBCBIDEgAxCgkKAggBEgMSADEKCAoBAhIDFAANCgoKAgQAEgQXABoBCgoKAwQAARIDFwgaCgsKBAQAAgASAxgEGwoNCgUEAAIABBIEGAQXHAoMCgUEAAIABRIDGAQKCgwKBQQAAgABEgMYCw8KDAoFBAACAAMSAxgZGgoLCgQEAAIBEgMZBBsKDQoFBAAC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dG9zL2FkYXB0ZXIucHJvdG8aH3ZvbHRoYV9wcm90b3Mvb3BlbmZsb3dfMTMucHJvdG8aGnZvbHRoYV9wcm90b3MvZXZlbnRzLnByb3RvGh52b2x0aGFfcHJvdG9zL2V4dGVuc2lvbnMucHJvdG8aH3ZvbHRoYV9wcm90b3Mvb21jaV9taWJfZGIucHJvdG8aIXZvbHRoYV9wcm90b3Mvb21jaV9hbGFybV9kYi5wcm90bxoddm9sdGhhX3Byb3Rvcy9vbWNpX3Rlc3QucHJvdG8iXQoMQ29yZUluc3RhbmNlEh8KC2luc3RhbmNlX2lkGAEgASgJUgppbnN0YW5jZUlkEiwKBmhlYWx0aBgCIAEoCzIULmhlYWx0aC5IZWFsdGhTdGF0dXNSBmhlYWx0aCI7Cg1Db3JlSW5zdGFuY2VzEioKBWl0ZW1zGAEgAygLMhQudm9sdGhhLkNvcmVJbnN0YW5jZVIFaXRlbXMiwAMKBlZvbHRoYRIYCgd2ZXJzaW9uGAEgASgJUgd2ZXJzaW9uEiwKCGFkYXB0ZXJzGAIgAygLMhAuYWRhcHRlci5BZGFwdGVyUghhZGFwdGVycxJGCg9sb2dpY2FsX2RldmljZXMYAyADKAsyHS5sb2dpY2FsX2RldmljZS5Mb2dpY2FsRGV2aWNlUg5sb2dpY2FsRGV2aWNlcxIoCgdkZXZpY2VzGAQgAygLMg4uZGV2aWNlLkRldmljZVIHZGV2aWNlcxI1CgxkZXZpY2VfdHlwZXMYBSADKAsyEi5kZXZpY2UuRGV2aWNlVHlwZVILZGV2aWNlVHlwZXMSNwoNZXZlbnRfZmlsdGVycxgHIAMoCzISLmV2ZW50LkV2ZW50RmlsdGVyUgxldmVudEZpbHRlcnMSPwoRb21jaV9taWJfZGF0YWJhc2UYHCADKAsyEy5vbWNpLk1pYkRldmljZURhdGFSD29tY2lNaWJEYXRhYmFzZRJFChNvbWNpX2FsYXJtX2RhdGFiYXNlGB0gAygLMhUub21jaS5BbGFybURldmljZURhdGFSEW9tY2lBbGFybURhdGFiYXNlSgQIBhAHMsczCg1Wb2x0aGFTZXJ2aWNlEkQKCUdldFZvbHRoYRIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoOLnZvbHRoYS5Wb2x0aGEiD4LT5JMCCRIHL2FwaS92MRJdChFMaXN0Q29yZUluc3RhbmNlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoVLnZvbHRoYS5Db3JlSW5zdGFuY2VzIhmC0+STAhMSES9hcGkvdjEvaW5zdGFuY2VzElMKD0dldENvcmVJbnN0YW5jZRIKLmNvbW1vbi5JRBoULnZvbHRoYS5Db3JlSW5zdGFuY2UiHoLT5JMCGBIWL2FwaS92MS9pbnN0YW5jZXMve2lkfRJTCgxMaXN0QWRhcHRlcnMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaES5hZGFwdGVyLkFkYXB0ZXJzIhiC0+STAhISEC9hcGkvdjEvYWRhcHRlcnMSbQoSTGlzdExvZ2ljYWxEZXZpY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Gh4ubG9naWNhbF9kZXZpY2UuTG9naWNhbERldmljZXMiH4LT5JMCGRIXL2FwaS92MS9sb2dpY2FsX2RldmljZXMSYwoQR2V0TG9naWNhbERldmljZRIKLmNvbW1vbi5JRBodLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxEZXZpY2UiJILT5JMCHhIcL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfRJuChZMaXN0TG9naWNhbERldmljZVBvcnRzEgouY29tbW9uLklEGhwubG9naWNhbF9kZXZpY2UuTG9naWNhbFBvcnRzIiqC0+STAiQSIi9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMSiAEKFEdldExvZ2ljYWxEZXZpY2VQb3J0Eh0ubG9naWNhbF9kZXZpY2UuTG9naWNhbFBvcnRJZBobLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxQb3J0IjSC0+STAi4SLC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMve3BvcnRfaWR9Eo0BChdFbmFibGVMb2dpY2FsRGV2aWNlUG9ydBIdLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxQb3J0SWQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiO4LT5JMCNSIzL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9wb3J0cy97cG9ydF9pZH0vZW5hYmxlEo8BChhEaXNhYmxlTG9naWNhbERldmljZVBvcnQSHS5sb2dpY2FsX2RldmljZS5Mb2dpY2FsUG9ydElkGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjyC0+STAjYiNC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMve3BvcnRfaWR9L2Rpc2FibGUSZAoWTGlzdExvZ2ljYWxEZXZpY2VGbG93cxIKLmNvbW1vbi5JRBoSLm9wZW5mbG93XzEzLkZsb3dzIiqC0+STAiQSIi9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd3MSgwEKHFVwZGF0ZUxvZ2ljYWxEZXZpY2VGbG93VGFibGUSHC5vcGVuZmxvd18xMy5GbG93VGFibGVVcGRhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiLYLT5JMCJyIiL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9mbG93czoBKhKEAQodVXBkYXRlTG9naWNhbERldmljZU1ldGVyVGFibGUSGy5vcGVuZmxvd18xMy5NZXRlck1vZFVwZGF0ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIugtPkkwIoIiMvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L21ldGVyczoBKhJnChdMaXN0TG9naWNhbERldmljZU1ldGVycxIKLmNvbW1vbi5JRBoTLm9wZW5mbG93XzEzLk1ldGVycyIrgtPkkwIlEiMvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L21ldGVycxJ0ChtMaXN0TG9naWNhbERldmljZUZsb3dHcm91cHMSCi5jb21tb24uSUQaFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzIjCC0+STAioSKC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd19ncm91cHMSkwEKIVVwZGF0ZUxvZ2ljYWxEZXZpY2VGbG93R3JvdXBUYWJsZRIhLm9wZW5mbG93XzEzLkZsb3dHcm91cFRhYmxlVXBkYXRlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjOC0+STAi0iKC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd19ncm91cHM6ASoSTwoLTGlzdERldmljZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaDy5kZXZpY2UuRGV2aWNlcyIXgtPkkwIREg8vYXBpL3YxL2RldmljZXMSTwoNTGlzdERldmljZUlkcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoLLmNvbW1vbi5JRHMiGYLT5JMCExIRL2FwaS92MS9kZXZpY2VpZHMSVQoQUmVjb25jaWxlRGV2aWNlcxILLmNvbW1vbi5JRHMaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiHILT5JMCFiIRL2FwaS92MS9kZXZpY2VpZHM6ASoSRQoJR2V0RGV2aWNlEgouY29tbW9uLklEGg4uZGV2aWNlLkRldmljZSIcgtPkkwIWEhQvYXBpL3YxL2RldmljZXMve2lkfRJKCgxDcmVhdGVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGg4uZGV2aWNlLkRldmljZSIagtPkkwIUIg8vYXBpL3YxL2RldmljZXM6ASoSVwoMRW5hYmxlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0iGy9hcGkvdjEvZGV2aWNlcy97aWR9L2VuYWJsZRJZCg1EaXNhYmxlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiSC0+STAh4iHC9hcGkvdjEvZGV2aWNlcy97aWR9L2Rpc2FibGUSVwoMUmVib290RGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0iGy9hcGkvdjEvZGV2aWNlcy97aWR9L3JlYm9vdBJXCgxEZWxldGVEZXZpY2USCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiI4LT5JMCHSobL2FwaS92MS9kZXZpY2VzL3tpZH0vZGVsZXRlEmIKEUZvcmNlRGVsZXRlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IimC0+STAiMqIS9hcGkvdjEvZGV2aWNlcy97aWR9L2ZvcmNlX2RlbGV0ZRJ4Cg1Eb3dubG9hZEltYWdlEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5jb21tb24uT3BlcmF0aW9uUmVzcCI5iAIBgtPkkwIwIisvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9OgEqEoUBChZHZXRJbWFnZURvd25sb2FkU3RhdHVzEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5kZXZpY2UuSW1hZ2VEb3dubG9hZCI9iAIBgtPkkwI0EjIvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9L3N0YXR1cxJ4ChBHZXRJbWFnZURvd25sb2FkEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5kZXZpY2UuSW1hZ2VEb3dubG9hZCI2iAIBgtPkkwItEisvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9EmkKEkxpc3RJbWFnZURvd25sb2FkcxIKLmNvbW1vbi5JRBoWLmRldmljZS5JbWFnZURvd25sb2FkcyIviAIBgtPkkwImEiQvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMSewoTQ2FuY2VsSW1hZ2VEb3dubG9hZBIVLmRldmljZS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiNogCAYLT5JMCLSorL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfRKLAQoTQWN0aXZhdGVJbWFnZVVwZGF0ZRIVLmRldmljZS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiRogCAYLT5JMCPSI4L2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfS9pbWFnZV91cGRhdGU6ASoSiQEKEVJldmVydEltYWdlVXBkYXRlEhUuZGV2aWNlLkltYWdlRG93bmxvYWQaFS5jb21tb24uT3BlcmF0aW9uUmVzcCJGiAIBgtPkkwI9IjgvYXBpL3YxL2RldmljZXMve2lkfS9pbWFnZV9kb3dubG9hZHMve25hbWV9L2ltYWdlX3JldmVydDoBKhKIAQoVRG93bmxvYWRJbWFnZVRvRGV2aWNlEiIuZGV2aWNlLkRldmljZUltYWdlRG93bmxvYWRSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiLoLT5JMCKBImL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9kb3dubG9hZF9pbWFnZXMSdwoOR2V0SW1hZ2VTdGF0dXMSGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiLILT5JMCJhIkL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9pbWFnZXNfc3RhdHVzEokBChlBYm9ydEltYWdlVXBncmFkZVRvRGV2aWNlEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlIjOC0+STAi0SKy9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvYWJvcnRfdXBncmFkZV9pbWFnZXMSVgoMR2V0T251SW1hZ2VzEgouY29tbW9uLklEGhEuZGV2aWNlLk9udUltYWdlcyIngtPkkwIhEh8vYXBpL3YxL2RldmljZXMve2lkfS9vbnVfaW1hZ2VzEnsKDUFjdGl2YXRlSW1hZ2USGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiMYLT5JMCKyImL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9hY3RpdmF0ZV9pbWFnZXM6ASoSdwoLQ29tbWl0SW1hZ2USGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2UiL4LT5JMCKSIkL2FwaS92MS9kZXZpY2VzL2ltYWdlcy9jb21taXRfaW1hZ2VzOgEqElAKD0xpc3REZXZpY2VQb3J0cxIKLmNvbW1vbi5JRBoNLmRldmljZS5Qb3J0cyIigtPkkwIcEhovYXBpL3YxL2RldmljZXMve2lkfS9wb3J0cxJdChNMaXN0RGV2aWNlUG1Db25maWdzEgouY29tbW9uLklEGhEuZGV2aWNlLlBtQ29uZmlncyIngtPkkwIhEh8vYXBpL3YxL2RldmljZXMve2lkfS9wbV9jb25maWdzEm4KFVVwZGF0ZURldmljZVBtQ29uZmlncxIRLmRldmljZS5QbUNvbmZpZ3MaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKoLT5JMCJCIfL2FwaS92MS9kZXZpY2VzL3tpZH0vcG1fY29uZmlnczoBKhJVCg9MaXN0RGV2aWNlRmxvd3MSCi5jb21tb24uSUQaEi5vcGVuZmxvd18xMy5GbG93cyIigtPkkwIcEhovYXBpL3YxL2RldmljZXMve2lkfS9mbG93cxJlChRMaXN0RGV2aWNlRmxvd0dyb3VwcxIKLmNvbW1vbi5JRBoXLm9wZW5mbG93XzEzLkZsb3dHcm91cHMiKILT5JMCIhIgL2FwaS92MS9kZXZpY2VzL3tpZH0vZmxvd19ncm91cHMSXAoPTGlzdERldmljZVR5cGVzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhMuZGV2aWNlLkRldmljZVR5cGVzIhyC0+STAhYSFC9hcGkvdjEvZGV2aWNlX3R5cGVzElIKDUdldERldmljZVR5cGUSCi5jb21tb24uSUQaEi5kZXZpY2UuRGV2aWNlVHlwZSIhgtPkkwIbEhkvYXBpL3YxL2RldmljZV90eXBlcy97aWR9EkYKEFN0cmVhbVBhY2tldHNPdXQSFi5vcGVuZmxvd18xMy5QYWNrZXRPdXQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiACgBEkUKEFJlY2VpdmVQYWNrZXRzSW4SFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFS5vcGVuZmxvd18xMy5QYWNrZXRJbiIAMAESSwoTUmVjZWl2ZUNoYW5nZUV2ZW50cxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoYLm9wZW5mbG93XzEzLkNoYW5nZUV2ZW50IgAwARJdChFDcmVhdGVFdmVudEZpbHRlchISLmV2ZW50LkV2ZW50RmlsdGVyGhIuZXZlbnQuRXZlbnRGaWx0ZXIiIILT5JMCGiIVL2FwaS92MS9ldmVudF9maWx0ZXJzOgEqElUKDkdldEV2ZW50RmlsdGVyEgouY29tbW9uLklEGhMuZXZlbnQuRXZlbnRGaWx0ZXJzIiKC0+STAhwSGi9hcGkvdjEvZXZlbnRfZmlsdGVycy97aWR9EmIKEVVwZGF0ZUV2ZW50RmlsdGVyEhIuZXZlbnQuRXZlbnRGaWx0ZXIaEi5ldmVudC5FdmVudEZpbHRlciIlgtPkkwIfGhovYXBpL3YxL2V2ZW50X2ZpbHRlcnMve2lkfToBKhJjChFEZWxldGVFdmVudEZpbHRlchISLmV2ZW50LkV2ZW50RmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiKC0+STAhwqGi9hcGkvdjEvZXZlbnRfZmlsdGVycy97aWR9El4KEExpc3RFdmVudEZpbHRlcnMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaEy5ldmVudC5FdmVudEZpbHRlcnMiHYLT5JMCFxIVL2FwaS92MS9ldmVudF9maWx0ZXJzEkwKCUdldEltYWdlcxIKLmNvbW1vbi5JRBoOLmRldmljZS5JbWFnZXMiI4LT5JMCHRIbL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VzElgKCFNlbGZUZXN0EgouY29tbW9uLklEGhguZGV2aWNlLlNlbGZUZXN0UmVzcG9uc2UiJoLT5JMCICIeL2FwaS92MS9kZXZpY2VzL3tpZH0vc2VsZl90ZXN0ElYKEEdldE1pYkRldmljZURhdGESCi5jb21tb24uSUQaEy5vbWNpLk1pYkRldmljZURhdGEiIYLT5JMCGxIZL2FwaS92MS9vcGVub21jaS97aWR9L21pYhJcChJHZXRBbGFybURldmljZURhdGESCi5jb21tb24uSUQaFS5vbWNpLkFsYXJtRGV2aWNlRGF0YSIjgtPkkwIdEhsvYXBpL3YxL29wZW5vbWNpL3tpZH0vYWxhcm0ScwoNU2ltdWxhdGVBbGFybRIcLmRldmljZS5TaW11bGF0ZUFsYXJtUmVxdWVzdBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIi2C0+STAiciIi9hcGkvdjEvZGV2aWNlcy97aWR9L3NpbXVsYXRlX2xhcm06ASoSTQoKRW5hYmxlUG9ydBIMLmRldmljZS5Qb3J0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhmC0+STAhMiDi92MS9FbmFibGVQb3J0OgEqEk8KC0Rpc2FibGVQb3J0EgwuZGV2aWNlLlBvcnQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiGoLT5JMCFCIPL3YxL0Rpc2FibGVQb3J0OgEqEl4KC0dldEV4dFZhbHVlEhkuZXh0ZW5zaW9uLlZhbHVlU3BlY2lmaWVyGhcuZXh0ZW5zaW9uLlJldHVyblZhbHVlcyIb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vCISBrYECLgECgo4CgQGAAI/Ega8BATBBAUaKCBvbWNpIHN0YXJ0IGFuZCBzdG9wIGNsaSBpbXBsZW1lbnRhdGlvbgoKDQoFBgACPwESBLwECBsKDQoFBgACPwISBLwEHDAKDQoFBgACPwMSBLwEOksKDwoFBgACPwQSBr0ECMAECgoTCgkGAAI/BLDKvCISBr0ECMAEClACYgZwcm90bzMKgT0KIHZvbHRoYV9wcm90b3MvY29yZV9hZGFwdGVyLnByb3RvEgxjb3JlX2FkYXB0ZXIaGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhp2b2x0aGFfcHJvdG9zL3ZvbHRoYS5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxobdm9sdGhhX3Byb3Rvcy9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2RldmljZS5wcm90bxoedm9sdGhhX3Byb3Rvcy9leHRlbnNpb25zLnByb3RvGh12b2x0aGFfcHJvdG9zL29tY2lfdGVzdC5wcm90byJuChNBZGFwdGVyUmVnaXN0cmF0aW9uEioKB2FkYXB0ZXIYASABKAsyEC5hZGFwdGVyLkFkYXB0ZXJSB2FkYXB0ZXISKwoGZFR5cGVzGAIgASgLMhMuZGV2aWNlLkRldmljZVR5cGVzUgZkVHlwZXMikgEKEUNoaWxkRGV2aWNlRmlsdGVyEhsKCXBhcmVudF9pZBgBIAEoCVIIcGFyZW50SWQSIwoNc2VyaWFsX251bWJlchgCIAEoCVIMc2VyaWFsTnVtYmVyEhUKBm9udV9pZBgDIAEoDVIFb251SWQSJAoOcGFyZW50X3BvcnRfbm8YBCABKA1SDHBhcmVudFBvcnRObyJxCgpQb3J0RmlsdGVyEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSEgoEcG9ydBgCIAEoDVIEcG9ydBIyCglwb3J0X3R5cGUYAyABKA4yFS5kZXZpY2UuUG9ydC5Qb3J0VHlwZVIIcG9ydFR5cGUi+AEKD0RldmljZURpc2NvdmVyeRIbCglwYXJlbnRfaWQYASABKAlSCHBhcmVudElkEiQKDnBhcmVudF9wb3J0X25vGAIgASgNUgxwYXJlbnRQb3J0Tm8SKgoRY2hpbGRfZGV2aWNlX3R5cGUYAyABKAlSD2NoaWxkRGV2aWNlVHlwZRIdCgpjaGFubmVsX2lkGAQgASgNUgljaGFubmVsSWQSGwoJdmVuZG9yX2lkGAUgASgJUgh2ZW5kb3JJZBIjCg1zZXJpYWxfbnVtYmVyGAYgASgJUgxzZXJpYWxOdW1iZXISFQoGb251X2lkGAcgASgNUgVvbnVJZCLTAQoRRGV2aWNlU3RhdGVGaWx0ZXISGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIoChBwYXJlbnRfZGV2aWNlX2lkGAIgASgJUg5wYXJlbnREZXZpY2VJZBI5CgtvcGVyX3N0YXR1cxgDIAEoDjIYLmNvbW1vbi5PcGVyU3RhdHVzLlR5cGVzUgpvcGVyU3RhdHVzEjwKC2Nvbm5fc3RhdHVzGAQgASgOMhsuY29tbW9uLkNvbm5lY3RTdGF0dXMuVHlwZXNSCmNvbm5TdGF0dXMisAEKCVBvcnRTdGF0ZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEjIKCXBvcnRfdHlwZRgCIAEoDjIVLmRldmljZS5Qb3J0LlBvcnRUeXBlUghwb3J0VHlwZRIXCgdwb3J0X25vGAMgASgNUgZwb3J0Tm8SOQoLb3Blcl9zdGF0dXMYBCABKA4yGC5jb21tb24uT3BlclN0YXR1cy5UeXBlc1IKb3BlclN0YXR1cyKTAQoPUG9ydFN0YXRlRmlsdGVyEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSKAoQcG9ydF90eXBlX2ZpbHRlchgCIAEoDVIOcG9ydFR5cGVGaWx0ZXISOQoLb3Blcl9zdGF0dXMYBCABKA4yGC5jb21tb24uT3BlclN0YXR1cy5UeXBlc1IKb3BlclN0YXR1cyJTCghQYWNrZXRJbhIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhIKBHBvcnQYAiABKA1SBHBvcnQSFgoGcGFja2V0GAMgASgMUgZwYWNrZXQigwEKCVBhY2tldE91dBIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEiQKDmVncmVzc19wb3J0X25vGAIgASgNUgxlZ3Jlc3NQb3J0Tm8SMwoGcGFja2V0GAMgASgLMhsub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9vdXRSBnBhY2tldCJDCgxEZXZpY2VSZWFzb24SGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIWCgZyZWFzb24YAiABKAlSBnJlYXNvbiLOAQoJQnVsa0Zsb3dzEiYKBmRldmljZRgBIAEoCzIOLmRldmljZS5EZXZpY2VSBmRldmljZRIoCgVmbG93cxgCIAEoCzISLm9wZW5mbG93XzEzLkZsb3dzUgVmbG93cxIvCgZncm91cHMYAyABKAsyFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzUgZncm91cHMSPgoNZmxvd19tZXRhZGF0YRgEIAEoCzIZLm9wZW5mbG93XzEzLkZsb3dNZXRhZGF0YVIMZmxvd01ldGFkYXRhIuEBChBJbmNyZW1lbnRhbEZsb3dzEiYKBmRldmljZRgBIAEoCzIOLmRldmljZS5EZXZpY2VSBmRldmljZRIuCgVmbG93cxgCIAEoCzIYLm9wZW5mbG93XzEzLkZsb3dDaGFuZ2VzUgVmbG93cxI1CgZncm91cHMYAyABKAsyHS5vcGVuZmxvd18xMy5GbG93R3JvdXBDaGFuZ2VzUgZncm91cHMSPgoNZmxvd19tZXRhZGF0YRgEIAEoCzIZLm9wZW5mbG93XzEzLkZsb3dNZXRhZGF0YVIMZmxvd01ldGFkYXRhIl4KDVBtQ29uZmlnc0luZm8SGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIwCgpwbV9jb25maWdzGAIgASgLMhEuZGV2aWNlLlBtQ29uZmlnc1IJcG1Db25maWdzIogBChBTd2l0Y2hDYXBhYmlsaXR5EikKBGRlc2MYASABKAsyFS5vcGVuZmxvd18xMy5vZnBfZGVzY1IEZGVzYxJJCg9zd2l0Y2hfZmVhdHVyZXMYAiABKAsyIC5vcGVuZmxvd18xMy5vZnBfc3dpdGNoX2ZlYXR1cmVzUg5zd2l0Y2hGZWF0dXJlcyJrChRJbWFnZURvd25sb2FkTWVzc2FnZRImCgZkZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgZkZXZpY2USKwoFaW1hZ2UYAiABKAsyFS5kZXZpY2UuSW1hZ2VEb3dubG9hZFIFaW1hZ2UiYwoIT01DSVRlc3QSJgoGZGV2aWNlGAEgASgLMg4uZGV2aWNlLkRldmljZVIGZGV2aWNlEi8KB3JlcXVlc3QYAiABKAsyFS5vbWNpLk9tY2lUZXN0UmVxdWVzdFIHcmVxdWVzdCJ2ChRTaW11bGF0ZUFsYXJtTWVzc2FnZRImCgZkZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgZkZXZpY2USNgoHcmVxdWVzdBgCIAEoCzIcLmRldmljZS5TaW11bGF0ZUFsYXJtUmVxdWVzdFIHcmVxdWVzdCK2AQoSR2V0RXh0VmFsdWVNZXNzYWdlEjMKDXBhcmVudF9kZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgxwYXJlbnREZXZpY2USMQoMY2hpbGRfZGV2aWNlGAIgASgLMg4uZGV2aWNlLkRldmljZVILY2hpbGREZXZpY2USOAoKdmFsdWVfdHlwZRgDIAEoDjIZLmV4dGVuc2lvbi5WYWx1ZVR5cGUuVHlwZVIJdmFsdWVUeXBlImcKElNldEV4dFZhbHVlTWVzc2FnZRImCgZkZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgZkZXZpY2USKQoFdmFsdWUYAyABKAsyEy5leHRlbnNpb24uVmFsdWVTZXRSBXZhbHVlQlgKIG9yZy5vcGVuY29yZC52b2x0aGEuY29yZV9hZGFwdGVyWjRnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vY29yZV9hZGFwdGVySt0kCgcSBQAAggEBCggKAQwSAwAAEgoICgEIEgMCAEsKCQoCCAsSAwIASwoICgEIEgMDADkKCQoCCAESAwMAOQoJCgIDABIDBQAkCgkKAgMBEgMGACQKCQoCAwISAwcAKQoJCgIDAxIDCAAlCgkKAgMEEgMJACQKCQoCAwUSAwoAKAoJCgIDBhIDCwAnCggKAQISAw0AFQojCgIEABIEEQAUATIXIENvcmUtQWRhcHRlciBtZXNzYWdlcwoKCgoDBAABEgMRCBsKCwoEBAACABIDEgQhCg0KBQQAAgAEEgQSBBEdCgwKBQQAAgAGEgMSBBMKDAoFBAACAAESAxIUGwoMCgUEAAIAAxIDEh8gCgsKBAQAAgESAxMEIgoNCgUEAAIBBBIEEwQSIQoMCgUEAAIBBhIDEwQWCgwKBQQAAgEBEgMTFx0KDAoFBAACAQMSAxMgIQoKCgIEARIEFgAbAQoKCgMEAQESAxYIGQoLCgQEAQIAEgMXBBkKDQoFBAECAAQSBBcEFhsKDAoFBAECAAUSAxcECgoMCgUEAQIAARIDFwsUCgwKBQQBAgADEgMXFxgKCwoEBAECARIDGAQdCg0KBQQBAgEEEgQYBBcZCgwKBQQBAgEFEgMYBAoKDAoFBAECAQESAxgLGAoMCgUEAQIBAxIDGBscCgsKBAQBAgISAxkEFgoNCgUEAQICBBIEGQQYHQoMCgUEAQICBRIDGQQKCgwKBQQBAgIBEgMZCxEKDAoFBAECAgMSAxkUFQoLCgQEAQIDEgMaBB4KDQoFBAECAwQSBBoEGRYKDAoFBAECAwUSAxoECgoMCgUEAQIDARIDGgsZCgwKBQQBAgMDEgMaHB0KCgoCBAISBB0AIQEKCgoDBAIBEgMdCBIKCwoEBAICABIDHgQZCg0KBQQCAgAEEgQeBB0UCgwKBQQCAgAFEgMeBAoKDAoFBAICAAESAx4LFAoMCgUEAgIAAxIDHhcYCgsKBAQCAgESAx8EFAoNCgUEAgIBBBIEHwQeGQoMCgUEAgIBBRIDHwQKCgwKBQQCAgEBEgMfCw8KDAoFBAICAQMSAx8SEwoLCgQEAgICEgMgBCcKDQoFBAICAgQSBCAEHxQKDAoFBAICAgYSAyAEGAoMCgUEAgICARIDIBkiCgwKBQQCAgIDEgMgJSYKCgoCBAMSBCMAKwEKCgoDBAMBEgMjCBcKCwoEBAMCABIDJAQZCg0KBQQDAgAEEgQkBCMZCgwKBQQDAgAFEgMkBAoKDAoFBAMCAAESAyQLFAoMCgUEAwIAAxIDJBcYCgsKBAQDAgESAyUEHgoNCgUEAwIBBBIEJQQkGQoMCgUEAwIBBRIDJQQKCgwKBQQDAgEBEgMlCxkKDAoFBAMCAQMSAyUcHQoLCgQEAwICEgMmBCEKDQoFBAMCAgQSBCYEJR4KDAoFBAMCAgUSAyYECgoMCgUEAwICARIDJgscCgwKBQQDAgIDEgMmHyAKCwoEBAMCAxIDJwQaCg0KBQQDAgMEEgQnBCYhCgwKBQQDAgMFEgMnBAoKDAoFBAMCAwESAycLFQoMCgUEAwIDAxIDJxgZCgsKBAQDAgQSAygEGQoNCgUEAwIEBBIEKAQnGgoMCgUEAwIEBRIDKAQKCgwKBQQDAgQBEgMoCxQKDAoFBAMCBAMSAygXGAoLCgQEAwIFEgMpBB0KDQoFBAMCBQQSBCkEKBkKDAoFBAMCBQUSAykECgoMCgUEAwIFARIDKQsYCgwKBQQDAgUDEgMpGxwKCwoEBAMCBhIDKgQWCg0KBQQDAgYEEgQqBCkdCgwKBQQDAgYFEgMqBAoKDAoFBAMCBgESAyoLEQoMCgUEAwIGAxIDKhQVCgoKAgQEEgQtADIBCgoKAwQEARIDLQgZCgsKBAQEAgASAy4EGQoNCgUEBAIABBIELgQtGwoMCgUEBAIABRIDLgQKCgwKBQQEAgABEgMuCxQKDAoFBAQCAAMSAy4XGAoLCgQEBAIBEgMvBCAKDQoFBAQCAQQSBC8ELhkKDAoFBAQCAQUSAy8ECgoMCgUEBAIBARIDLwsbCgwKBQQEAgEDEgMvHh8KCwoEBAQCAhIDMAQsCg0KBQQEAgIEEgQwBC8gCgwKBQQEAgIGEgMwBBsKDAoFBAQCAgESAzAcJwoMCgUEBAICAxIDMCorCgsKBAQEAgMSAzEELwoNCgUEBAIDBBIEMQQwLAoMCgUEBAIDBhIDMQQeCgwKBQQEAgMBEgMxHyoKDAoFBAQCAwMSAzEtLgoKCgIEBRIENAA5AQoKCgMEBQESAzQIEQoLCgQEBQIAEgM1BBkKDQoFBAUCAAQSBDUENBMKDAoFBAUCAAUSAzUECgoMCgUEBQIAARIDNQsUCgwKBQQFAgADEgM1FxgKCwoEBAUCARIDNgQnCg0KBQQFAgEEEgQ2BDUZCgwKBQQFAgEGEgM2BBgKDAoFBAUCAQESAzYZIgoMCgUEBQIBAxIDNiUmCgsKBAQFAgISAzcEFwoNCgUEBQICBBIENwQ2JwoMCgUEBQICBRIDNwQKCgwKBQQFAgIBEgM3CxIKDAoFBAUCAgMSAzcVFgoLCgQEBQIDEgM4BCwKDQoFBAUCAwQSBDgENxcKDAoFBAUCAwYSAzgEGwoMCgUEBQIDARIDOBwnCgwKBQQFAgMDEgM4KisKCgoCBAYSBDsAPwEKCgoDBAYBEgM7CBcKCwoEBAYCABIDPAQZCg0KBQQGAgAEEgQ8BDsZCgwKBQQGAgAFEgM8BAoKDAoFBAYCAAESAzwLFAoMCgUEBgIAAxIDPBcYCgsKBAQGAgESAz0EIAoNCgUEBgIBBBIEPQQ8GQoMCgUEBgIBBRIDPQQKCgwKBQQGAgEBEgM9CxsKDAoFBAYCAQMSAz0eHwoLCgQEBgICEgM+BCwKDQoFBAYCAgQSBD4EPSAKDAoFBAYCAgYSAz4EGwoMCgUEBgICARIDPhwnCgwKBQQGAgIDEgM+KisKCgoCBAcSBEEARQEKCgoDBAcBEgNBCBAKCwoEBAcCABIDQgQZCg0KBQQHAgAEEgRCBEESCgwKBQQHAgAFEgNCBAoKDAoFBAcCAAESA0ILFAoMCgUEBwIAAxIDQhcYCgsKBAQHAgESA0MEFAoNCgUEBwIBBBIEQwRCGQoMCgUEBwIBBRIDQwQKCgwKBQQHAgEBEgNDCw8KDAoFBAcCAQMSA0MSEwoLCgQEBwICEgNEBBUKDQoFBAcCAgQSBEQEQxQKDAoFBAcCAgUSA0QECQoMCgUEBwICARIDRAoQCgwKBQQHAgIDEgNEExQKCgoCBAgSBEcASwEKCgoDBAgBEgNHCBEKCwoEBAgCABIDSAQZCg0KBQQIAgAEEgRIBEcTCgwKBQQIAgAFEgNIBAoKDAoFBAgCAAESA0gLFAoMCgUECAIAAxIDSBcYCgsKBAQIAgESA0kEHgoNCgUECAIBBBIESQRIGQoMCgUECAIBBRIDSQQKCgwKBQQIAgEBEgNJCxkKDAoFBAgCAQMSA0kcHQoLCgQECAICEgNKBCoKDQoFBAgCAgQSBEoESR4KDAoFBAgCAgYSA0oEHgoMCgUECAICARIDSh8lCgwKBQQIAgIDEgNKKCkKCgoCBAkSBE0AUAEKCgoDBAkBEgNNCBQKCwoEBAkCABIDTgQZCg0KBQQJAgAEEgROBE0WCgwKBQQJAgAFEgNOBAoKDAoFBAkCAAESA04LFAoMCgUECQIAAxIDThcYCgsKBAQJAgESA08EFgoNCgUECQIBBBIETwROGQoMCgUECQIBBRIDTwQKCgwKBQQJAgEBEgNPCxEKDAoFBAkCAQMSA08UFQoKCgIEChIEUgBXAQoKCgMECgESA1IIEQoLCgQECgIAEgNTBB0KDQoFBAoCAAQSBFMEUhMKDAoFBAoCAAYSA1MEEQoMCgUECgIAARIDUxIYCgwKBQQKAgADEgNTGxwKCwoEBAoCARIDVAQgCg0KBQQKAgEEEgRUBFMdCgwKBQQKAgEGEgNUBBUKDAoFBAoCAQESA1QWGwoMCgUECgIBAxIDVB4fCgsKBAQKAgISA1UEJgoNCgUECgICBBIEVQRUIAoMCgUECgICBhIDVQQaCgwKBQQKAgIBEgNVGyEKDAoFBAoCAgMSA1UkJQoLCgQECgIDEgNWBC8KDQoFBAoCAwQSBFYEVSYKDAoFBAoCAwYSA1YEHAoMCgUECgIDARIDVh0qCgwKBQQKAgMDEgNWLS4KCgoCBAsSBFkAXgEKCgoDBAsBEgNZCBgKCwoEBAsCABIDWgQdCg0KBQQLAgAEEgRaBFkaCgwKBQQLAgAGEgNaBBEKDAoFBAsCAAESA1oSGAoMCgUECwIAAxIDWhscCgsKBAQLAgESA1sEJgoNCgUECwIBBBIEWwRaHQoMCgUECwIBBhIDWwQbCgwKBQQLAgEBEgNbHCEKDAoFBAsCAQMSA1skJQoLCgQECwICEgNcBCwKDQoFBAsCAgQSBFwEWyYKDAoFBAsCAgYSA1wEIAoMCgUECwICARIDXCEnCgwKBQQLAgIDEgNcKisKCwoEBAsCAxIDXQQvCg0KBQQLAgMEEgRdBFwsCgwKBQQLAgMGEgNdBBwKDAoFBAsCAwESA10dKgoMCgUECwIDAxIDXS0uCgoKAgQMEgRgAGMBCgoKAwQMARIDYAgVCgsKBAQMAgASA2EEGQoNCgUEDAIABBIEYQRgFwoMCgUEDAIABRIDYQQKCgwKBQQMAgABEgNhCxQKDAoFBAwCAAMSA2EXGAoLCgQEDAIBEgNiBCQKDQoFBAwCAQQSBGIEYRkKDAoFBAwCAQYSA2IEFAoMCgUEDAIBARIDYhUfCgwKBQQMAgEDEgNiIiMKCgoCBA0SBGUAaAEKCgoDBA0BEgNlCBgKCwoEBA0CABIDZgQiCg0KBQQNAgAEEgRmBGUaCgwKBQQNAgAGEgNmBBgKDAoFBA0CAAESA2YZHQoMCgUEDQIAAxIDZiAhCgsKBAQNAgESA2cEOAoNCgUEDQIBBBIEZwRmIgoMCgUEDQIBBhIDZwQjCgwKBQQNAgEBEgNnJDMKDAoFBA0CAQMSA2c2NwoKCgIEDhIEagBtAQoKCgMEDgESA2oIHAoLCgQEDgIAEgNrBB0KDQoFBA4CAAQSBGsEah4KDAoFBA4CAAYSA2sEEQoMCgUEDgIAARIDaxIYCgwKBQQOAgADEgNrGxwKCwoEBA4CARIDbAQjCg0KBQQOAgEEEgRsBGsdCgwKBQQOAgEGEgNsBBgKDAoFBA4CAQESA2wZHgoMCgUEDgIBAxIDbCEiCgoKAgQPEgRvAHIBCgoKAwQPARIDbwgQCgsKBAQPAgASA3AEHQoNCgUEDwIABBIEcARvEgoMCgUEDwIABhIDcAQRCgwKBQQPAgABEgNwEhgKDAoFBA8CAAMSA3AbHAoLCgQEDwIBEgNxBCUKDQoFBA8CAQQSBHEEcB0KDAoFBA8CAQYSA3EEGAoMCgUEDwIBARIDcRkgCgwKBQQPAgEDEgNxIyQKCgoCBBASBHQAdwEKCgoDBBABEgN0CBwKCwoEBBACABIDdQQdCg0KBQQQAgAEEgR1BHQeCgwKBQQQAgAGEgN1BBEKDAoFBBACAAESA3USGAoMCgUEEAIAAxIDdRscCgsKBAQQAgESA3YELAoNCgUEEAIBBBIEdgR1HQoMCgUEEAIBBhIDdgQfCgwKBQQQAgEBEgN2ICcKDAoFBBACAQMSA3YqKwoKCgIEERIEeQB9AQoKCgMEEQESA3kIGgoLCgQEEQIAEgN6BCQKDQoFBBECAAQSBHoEeRwKDAoFBBECAAYSA3oEEQoMCgUEEQIAARIDehIfCgwKBQQRAgADEgN6IiMKCwoEBBECARIDewQjCg0KBQQRAgEEEgR7BHokCgwKBQQRAgEGEgN7BBEKDAoFBBECAQESA3sSHgoMCgUEEQIBAxIDeyEiCgsKBAQRAgISA3wEKgoNCgUEEQICBBIEfAR7IwoMCgUEEQICBhIDfAQcCgwKBQQRAgIBEgN8HScKDAoFBBECAgMSA3woKQoLCgIEEhIFfwCCAQEKCgoDBBIBEgN/CBoKDAoEBBICABIEgAEEHQoOCgUEEgIABBIFgAEEfxwKDQoFBBICAAYSBIABBBEKDQoFBBICAAESBIABEhgKDQoFBBICAAMSBIABGxwKDAoEBBICARIEgQEEHwoPCgUEEgIBBBIGgQEEgAEdCg0KBQQSAgEGEgSBAQQWCg0KBQQSAgEBEgSBARccCg0KBQQSAgEDEgSBAR0eYgZwcm90bzMKpysKI3ZvbHRoYV9wcm90b3MvYWRhcHRlcl9zZXJ2aWNlLnByb3RvEg9hZGFwdGVyX3NlcnZpY2UaG2dvb2dsZS9wcm90b2J1Zi9lbXB0eS5wcm90bxoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aIHZvbHRoYV9wcm90b3MvY29yZV9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2RldmljZS5wcm90bxoedm9sdGhhX3Byb3Rvcy9leHRlbnNpb25zLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bxoadm9sdGhhX3Byb3Rvcy92b2x0aGEucHJvdG8aHXZvbHRoYV9wcm90b3Mvb21jaV90ZXN0LnByb3RvGhp2b2x0aGFfcHJvdG9zL2V2ZW50cy5wcm90bzKYEwoOQWRhcHRlclNlcnZpY2USPwoPR2V0SGVhbHRoU3RhdHVzEhIuY29tbW9uLkNvbm5lY3Rpb24aFC5oZWFsdGguSGVhbHRoU3RhdHVzKAEwARI1CgtBZG9wdERldmljZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOQoPUmVjb25jaWxlRGV2aWNlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI2CgxEZWxldGVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjcKDURpc2FibGVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjgKDlJlRW5hYmxlRGV2aWNlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI2CgxSZWJvb3REZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjgKDlNlbGZUZXN0RGV2aWNlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJCChBHZXRPZnBEZXZpY2VJbmZvEg4uZGV2aWNlLkRldmljZRoeLmNvcmVfYWRhcHRlci5Td2l0Y2hDYXBhYmlsaXR5EjkKD0NoaWxkRGV2aWNlTG9zdBIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSMgoKRW5hYmxlUG9ydBIMLmRldmljZS5Qb3J0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjMKC0Rpc2FibGVQb3J0EgwuZGV2aWNlLlBvcnQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSQgoPVXBkYXRlRmxvd3NCdWxrEhcuY29yZV9hZGFwdGVyLkJ1bGtGbG93cxoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJSChhVcGRhdGVGbG93c0luY3JlbWVudGFsbHkSHi5jb3JlX2FkYXB0ZXIuSW5jcmVtZW50YWxGbG93cxoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJACg1TZW5kUGFja2V0T3V0EhcuY29yZV9hZGFwdGVyLlBhY2tldE91dBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJFCg5VcGRhdGVQbUNvbmZpZxIbLmNvcmVfYWRhcHRlci5QbUNvbmZpZ3NJbmZvGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElMKEERvd25sb2FkT251SW1hZ2USIi5kZXZpY2UuRGV2aWNlSW1hZ2VEb3dubG9hZFJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZRJMChFHZXRPbnVJbWFnZVN0YXR1cxIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZRJPChRBYm9ydE9udUltYWdlVXBncmFkZRIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZRItCgxHZXRPbnVJbWFnZXMSCi5jb21tb24uSUQaES5kZXZpY2UuT251SW1hZ2VzEksKEEFjdGl2YXRlT251SW1hZ2USGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2USSQoOQ29tbWl0T251SW1hZ2USGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2USTwoNRG93bmxvYWRJbWFnZRIiLmNvcmVfYWRhcHRlci5JbWFnZURvd25sb2FkTWVzc2FnZRoVLmRldmljZS5JbWFnZURvd25sb2FkIgOIAgESWAoWR2V0SW1hZ2VEb3dubG9hZFN0YXR1cxIiLmNvcmVfYWRhcHRlci5JbWFnZURvd25sb2FkTWVzc2FnZRoVLmRldmljZS5JbWFnZURvd25sb2FkIgOIAgESVQoTQ2FuY2VsSW1hZ2VEb3dubG9hZBIiLmNvcmVfYWRhcHRlci5JbWFnZURvd25sb2FkTWVzc2FnZRoVLmRldmljZS5JbWFnZURvd25sb2FkIgOIAgESVQoTQWN0aXZhdGVJbWFnZVVwZGF0ZRIiLmNvcmVfYWRhcHRlci5JbWFnZURvd25sb2FkTWVzc2FnZRoVLmRldmljZS5JbWFnZURvd25sb2FkIgOIAgESUwoRUmV2ZXJ0SW1hZ2VVcGRhdGUSIi5jb3JlX2FkYXB0ZXIuSW1hZ2VEb3dubG9hZE1lc3NhZ2UaFS5kZXZpY2UuSW1hZ2VEb3dubG9hZCIDiAIBEjsKDVN0YXJ0T21jaVRlc3QSFi5jb3JlX2FkYXB0ZXIuT01DSVRlc3QaEi5vbWNpLlRlc3RSZXNwb25zZRJKCg1TaW11bGF0ZUFsYXJtEiIuY29yZV9hZGFwdGVyLlNpbXVsYXRlQWxhcm1NZXNzYWdlGhUuY29tbW9uLk9wZXJhdGlvblJlc3ASOwoNU3VwcHJlc3NFdmVudBISLmV2ZW50LkV2ZW50RmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ej0KD1VuU3VwcHJlc3NFdmVudBISLmV2ZW50LkV2ZW50RmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkgKC0dldEV4dFZhbHVlEiAuY29yZV9hZGFwdGVyLkdldEV4dFZhbHVlTWVzc2FnZRoXLmV4dGVuc2lvbi5SZXR1cm5WYWx1ZXMSRwoLU2V0RXh0VmFsdWUSIC5jb3JlX2FkYXB0ZXIuU2V0RXh0VmFsdWVNZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElUKDkdldFNpbmdsZVZhbHVlEiAuZXh0ZW5zaW9uLlNpbmdsZUdldFZhbHVlUmVxdWVzdBohLmV4dGVuc2lvbi5TaW5nbGVHZXRWYWx1ZVJlc3BvbnNlElUKDlNldFNpbmdsZVZhbHVlEiAuZXh0ZW5zaW9uLlNpbmdsZVNldFZhbHVlUmVxdWVzdBohLmV4dGVuc2lvbi5TaW5nbGVTZXRWYWx1ZVJlc3BvbnNlQnQKI29yZy5vcGVuY29yZC52b2x0aGEuYWRhcHRlcl9zZXJ2aWNlQhRWb2x0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AAICAhIDEBkaCkEKBgQABAACAxIDEggiGjIgVGhlIGRldmljZSBpcyBnZXR0aW5nIGRlbGV0ZWQgZnJvbSBhZGFwdGVyIHN0YXRlCgoOCgcEAAQAAgMBEgMSCB0KDgoHBAAEAAIDAhIDEiAhClMKBgQABAACBBIDFAgrGkQgVGhlIGRldmljZSBpcyBkZWxldGVkIGZyb20gYWRhcHRlciBhbmQgaXMgZ2V0dGluZyBkZWxldGVkIGluIGNvcmUuCgoOCgcEAAQAAgQBEgMUCCYKDgoHBAAEAAIEAhIDFCkqCkYKBgQABAACBRIDFggaGjcgU3RhdGUgdG8gcmVwcmVzZW50IHRoYXQgdGhlIGRldmljZSBkZWxldGlvbiBpcyBmYWlsZWQKCg4KBwQABAACBQESAxYIFQoOCgcEAAQAAgUCEgMWGBkKQQoGBAAEAAIGEgMYBB4aMiBTdGF0ZSB0byByZXByZXNlbnQgdGhhdCByZWNvbmNpbGUgaXMgaW4gcHJvZ3Jlc3MKCg4KBwQABAACBgESAxgEGQoOCgcEAAQAAgYCEgMYHB0KCwoEBAACABIDGgQeCg0KBQQAAgAEEgQaBBkFCgwKBQQAAgAGEgMaBAkKDAoFBAACAAESAxoKGQoMCgUEAAIAAxIDGhwdYgZwcm90bzMK7RwKIXZvbHRoYV9wcm90b3MvY29yZV9zZXJ2aWNlcy5wcm90bxIMY29yZV9zZXJ2aWNlGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aIHZvbHRoYV9wcm90b3MvY29yZV9hZGFwdGVyLnByb3RvGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxoadm9sdGhhX3Byb3Rvcy9kZXZpY2UucHJvdG8aGnZvbHRoYV9wcm90b3MvaGVhbHRoLnByb3RvMv0LCgtDb3JlU2VydmljZRI/Cg9HZXRIZWFsdGhTdGF0dXMSEi5jb21tb24uQ29ubmVjdGlvbhoULmhlYWx0aC5IZWFsdGhTdGF0dXMoATABEkwKD1JlZ2lzdGVyQWRhcHRlchIhLmNvcmVfYWRhcHRlci5BZGFwdGVyUmVnaXN0cmF0aW9uGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjYKDERldmljZVVwZGF0ZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSMwoLUG9ydENyZWF0ZWQSDC5kZXZpY2UuUG9ydBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJJChBQb3J0c1N0YXRlVXBkYXRlEh0uY29yZV9hZGFwdGVyLlBvcnRTdGF0ZUZpbHRlchoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI0Cg5EZWxldGVBbGxQb3J0cxIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI3Cg1HZXREZXZpY2VQb3J0EhguY29yZV9hZGFwdGVyLlBvcnRGaWx0ZXIaDC5kZXZpY2UuUG9ydBIsCg9MaXN0RGV2aWNlUG9ydHMSCi5jb21tb24uSUQaDS5kZXZpY2UuUG9ydHMSTAoRRGV2aWNlU3RhdGVVcGRhdGUSHy5jb3JlX2FkYXB0ZXIuRGV2aWNlU3RhdGVGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSQQoURGV2aWNlUE1Db25maWdVcGRhdGUSES5kZXZpY2UuUG1Db25maWdzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkQKE0NoaWxkRGV2aWNlRGV0ZWN0ZWQSHS5jb3JlX2FkYXB0ZXIuRGV2aWNlRGlzY292ZXJ5Gg4uZGV2aWNlLkRldmljZRI2ChBDaGlsZERldmljZXNMb3N0EgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjoKFENoaWxkRGV2aWNlc0RldGVjdGVkEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EicKCUdldERldmljZRIKLmNvbW1vbi5JRBoOLmRldmljZS5EZXZpY2USQQoOR2V0Q2hpbGREZXZpY2USHy5jb3JlX2FkYXB0ZXIuQ2hpbGREZXZpY2VGaWx0ZXIaDi5kZXZpY2UuRGV2aWNlEi4KD0dldENoaWxkRGV2aWNlcxIKLmNvbW1vbi5JRBoPLmRldmljZS5EZXZpY2VzEj4KDFNlbmRQYWNrZXRJbhIWLmNvcmVfYWRhcHRlci5QYWNrZXRJbhoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJIChJEZXZpY2VSZWFzb25VcGRhdGUSGi5jb3JlX2FkYXB0ZXIuRGV2aWNlUmVhc29uGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkIKD1BvcnRTdGF0ZVVwZGF0ZRIXLmNvcmVfYWRhcHRlci5Qb3J0U3RhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSOwoVUmVjb25jaWxlQ2hpbGREZXZpY2VzEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ek0KHkdldENoaWxkRGV2aWNlV2l0aFByb3h5QWRkcmVzcxIbLmRldmljZS5EZXZpY2UuUHJveHlBZGRyZXNzGg4uZGV2aWNlLkRldmljZRIzCghHZXRQb3J0cxIYLmNvcmVfYWRhcHRlci5Qb3J0RmlsdGVyGg0uZGV2aWNlLlBvcnRzEk4KE0NoaWxkcmVuU3RhdGVVcGRhdGUSHy5jb3JlX2FkYXB0ZXIuRGV2aWNlU3RhdGVGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSRAoTVXBkYXRlSW1hZ2VEb3dubG9hZBIVLmRldmljZS5JbWFnZURvd25sb2FkGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5QmsKIG9yZy5vcGVuY29yZC52b2x0aGEuY29yZV9zZXJ2aWNlQhFWb2x0aGFDb3JlU2VydmljZVo0Z2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL2NvcmVfc2VydmljZUqxDgoGEgQAAC4BCggKAQwSAwAAEgoICgEIEgMCAEsKCQoCCAsSAwIASwoICgEIEgMDADkKCQoCCAESAwMAOQoICgEIEgMEADIKCQoCCAgSAwQAMgoICgECEgMGABUKCQoCAwASAwgAJQoJCgIDARIDCQAqCgkKAgMCEgMKACQKCQoCAwMSAwsAJAoJCgIDBBIDDAAkCp8BCgIGABIEEAAuARqSASBUaGUgQ29yZVNlcnZpY2UgaXMgYSBnUlBDIHNlcnZpY2UgaW1wbGVtZW50ZWQgYnkgdGhlIFZvbHRoYSBSVy1Db3JlIGZvciB0aGUKIHNvbGUgcHVycG9zZSBvZiBzZXJ2aW5nIHJlcXVlc3RzL3VwZGF0ZXMgZnJvbSB0aGUgVm9sdGhhIGFkYXB0ZXJzLiAKCgoKAwYAARIDEAgTCokBCgQGAAIAEgMTBFcafCBHZXRIZWFsdGhT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YWJsZVR5cGVSFGxpbmtVcERvd25UcmFwRW5hYmxlIj8KGExpbmtVcERvd25UcmFwRW5hYmxlVHlwZRIRCg1UUkFQX0RJU0FCTEVEEAASEAoMVFJBUF9FTkFCTEVEEAEiTAoPSW50ZXJmYWNlc1N0YXRlEjkKDWFsbF9pbnRlcmZhY3MYASADKAsyFC5pZXRmLkludGVyZmFjZVN0YXRlUgxhbGxJbnRlcmZhY3MiwAQKDkludGVyZmFjZVN0YXRlEhIKBG5hbWUYASABKAlSBG5hbWUSEgoEdHlwZRgCIAEoCVIEdHlwZRJHCgxhZG1pbl9zdGF0dXMYAyABKA4yJC5pZXRmLkludGVyZmFjZVN0YXRlLkFkbWluU3RhdHVzVHlwZVILYWRtaW5TdGF0dXMSRAoLb3Blcl9zdGF0dXMYBCABKA4yIy5pZXRmLkludGVyZmFjZVN0YXRlLk9wZXJTdGF0dXNUeXBlUgpvcGVyU3RhdHVzEh8KC2xhc3RfY2hhbmdlGAUgASgJUgpsYXN0Q2hhbmdlEhkKCGlmX2luZGV4GAYgASgFUgdpZkluZGV4EiEKDHBoeXNfYWRkcmVzcxgHIAEoCVILcGh5c0FkZHJlc3MSJgoPaGlnaGVyX2xheWVyX2lmGAggAygJUg1oaWdoZXJMYXllcklmEiQKDmxvd2VyX2xheWVyX2lmGAkgAygJUgxsb3dlckxheWVySWYSFAoFc3BlZWQYCiABKARSBXNwZWVkIkIKD0FkbWluU3RhdHVzVHlwZRIOCgpBRE1JTl9ET1dOEAASEQoNQURNSU5fVEVTVElORxABEgwKCEFETUlOX1VQEAIicAoOT3BlclN0YXR1c1R5cGUSCwoHRE9STUFOVBAAEhQKEExPV0VSX0xBWUVSX0RPV04QARILCgdVTktOT1dOEAISCwoHVEVTVElORxADEgYKAlVQEAQSCAoERE9XThAFEg8KC05PVF9QUkVTRU5UEAZCSAoYb3JnLm9wZW5jb3JkLnZvbHRoYS5pZXRmWixnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vaWV0ZkrQDwoGEgQAADUBCggKAQwSAwAAEgoICgEIEgMCAEMKCQoCCAsSAwIAQwoICgEIEgMDADEKCQoCCAESAwMAMQoICgECEgMFAA0K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MwQoCgwKBQQDAggEEgMzBAwKDAoFBAMCCAUSAzMNEwoMCgUEAwIIARIDMxQiCgwKBQQDAggDEgMzJSYKCwoEBAMCCRIDNAQXCg0KBQQDAgkEEgQ0BDMoCgwKBQQDAgkFEgM0BAoKDAoFBAMCCQESAzQLEAoMCgUEAwIJAxIDNBMVYgZwcm90bzMKk58BCiB2b2x0aGFfcHJvdG9zL3RlY2hfcHJvZmlsZS5wcm90bxIMdGVjaF9wcm9maWxlGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvIoACCg9TY2hlZHVsZXJDb25maWcSNQoJZGlyZWN0aW9uGAEgASgOMhcudGVjaF9wcm9maWxlLkRpcmVjdGlvblIJZGlyZWN0aW9uEj8KDWFkZGl0aW9uYWxfYncYAiABKA4yGi50ZWNoX3Byb2ZpbGUuQWRkaXRpb25hbEJXUgxhZGRpdGlvbmFsQncSGgoIcHJpb3JpdHkYAyABKAdSCHByaW9yaXR5EhYKBndlaWdodBgEIAEoB1IGd2VpZ2h0EkEKDHNjaGVkX3BvbGljeRgFIAEoDjIeLnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UgtzY2hlZFBvbGljeSK4AQoSVHJhZmZpY1NoYXBpbmdJbmZvEhAKA2NpchgBIAEoB1IDY2lyEhAKA2NicxgCIAEoB1IDY2JzEhAKA3BpchgDIAEoB1IDcGlyEhAKA3BicxgEIAEoB1IDcGJzEhAKA2dpchgFIAEoB1IDZ2lyEkgKCmFkZF9id19pbmQYBiABKA4yKi50ZWNoX3Byb2ZpbGUuSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvblIIYWRkQndJbmQinQIKEFRyYWZmaWNTY2hlZHVsZXISNQoJZGlyZWN0aW9uGAEgASgOMhcudGVjaF9wcm9maWxlLkRpcmVjdGlvblIJZGlyZWN0aW9uEhkKCGFsbG9jX2lkGAIgASgHUgdhbGxvY0lkEjsKCXNjaGVkdWxlchgDIAEoCzIdLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJDb25maWdSCXNjaGVkdWxlchJSChR0cmFmZmljX3NoYXBpbmdfaW5mbxgEIAEoCzIgLnRlY2hfcHJvZmlsZS5UcmFmZmljU2hhcGluZ0luZm9SEnRyYWZmaWNTaGFwaW5nSW5mbxImCg90ZWNoX3Byb2ZpbGVfaWQYBSABKAdSDXRlY2hQcm9maWxlSWQiugEKEVRyYWZmaWNTY2hlZHVsZXJzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhUKBnVuaV9pZBgEIAEoB1IFdW5pSWQSFwoHcG9ydF9ubxgFIAEoB1IGcG9ydE5vEkUKDnRyYWZmaWNfc2NoZWRzGAMgAygLMh4udGVjaF9wcm9maWxlLlRyYWZmaWNTY2hlZHVsZXJSDXRyYWZmaWNTY2hlZHMiNgoVVGFpbERyb3BEaXNjYXJkQ29uZmlnEh0KCnF1ZXVlX3NpemUYASABKAdSCXF1ZXVlU2l6ZSKFAQoQUmVkRGlzY2FyZENvbmZpZxIjCg1taW5fdGhyZXNob2xkGAEgASgHUgxtaW5UaHJlc2hvbGQSIwoNbWF4X3RocmVzaG9sZBgCIAEoB1IMbWF4VGhyZXNob2xkEicKD21heF9wcm9iYWJpbGl0eRgDIAEoB1IObWF4UHJvYmFiaWxpdHkiswEKEVdSZWREaXNjYXJkQ29uZmlnEjQKBWdyZWVuGAEgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSBWdyZWVuEjYKBnllbGxvdxgCIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUgZ5ZWxsb3cSMAoDcmVkGAMgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSA3JlZCLoAgoNRGlzY2FyZENvbmZpZxJCCg5kaXNjYXJkX3BvbGljeRgBIAEoDjIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5El4KGHRhaWxfZHJvcF9kaXNjYXJkX2NvbmZpZxgCIAEoCzIjLnRlY2hfcHJvZmlsZS5UYWlsRHJvcERpc2NhcmRDb25maWdIAFIVdGFpbERyb3BEaXNjYXJkQ29uZmlnEk4KEnJlZF9kaXNjYXJkX2NvbmZpZxgDIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnSABSEHJlZERpc2NhcmRDb25maWcSUQoTd3JlZF9kaXNjYXJkX2NvbmZpZxgEIAEoCzIfLnRlY2hfcHJvZmlsZS5XUmVkRGlzY2FyZENvbmZpZ0gAUhF3cmVkRGlzY2FyZENvbmZpZ0IQCg5kaXNjYXJkX2NvbmZpZyKlAwoMVHJhZmZpY1F1ZXVlEjUKCWRpcmVjdGlvbhgBIAEoDjIXLnRlY2hfcHJvZmlsZS5EaXJlY3Rpb25SCWRpcmVjdGlvbhIdCgpnZW1wb3J0X2lkGAIgASgHUglnZW1wb3J0SWQSGQoIcGJpdF9tYXAYAyABKAlSB3BiaXRNYXASJQoOYWVzX2VuY3J5cHRpb24YBCABKAhSDWFlc0VuY3J5cHRpb24SQQoMc2NoZWRfcG9saWN5GAUgASgOMh4udGVjaF9wcm9maWxlLlNjaGVkdWxpbmdQb2xpY3lSC3NjaGVkUG9saWN5EhoKCHByaW9yaXR5GAYgASgHUghwcmlvcml0eRIWCgZ3ZWlnaHQYByABKAdSBndlaWdodBJCCg5kaXNjYXJkX3BvbGljeRgIIAEoDjIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5EkIKDmRpc2NhcmRfY29uZmlnGAkgASgLMhsudGVjaF9wcm9maWxlLkRpc2NhcmRDb25maWdSDWRpc2NhcmRDb25maWci2gEKDVRyYWZmaWNRdWV1ZXMSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFQoGdW5pX2lkGAQgASgHUgV1bmlJZBIXCgdwb3J0X25vGAUgASgHUgZwb3J0Tm8SQQoOdHJhZmZpY19xdWV1ZXMYBiADKAsyGi50ZWNoX3Byb2ZpbGUuVHJhZmZpY1F1ZXVlUg10cmFmZmljUXVldWVzEiYKD3RlY2hfcHJvZmlsZV9pZBgHIAEoB1INdGVjaFByb2ZpbGVJZCJmCg9JbnN0YW5jZUNvbnRyb2wSEAoDb251GAEgASgJUgNvbnUSEAoDdW5pGAIgASgJUgN1bmkSLwoUbWF4X2dlbV9wYXlsb2FkX3NpemUYAyABKAlSEW1heEdlbVBheWxvYWRTaXplIoICCgtRVGhyZXNob2xkcxIhCgxxX3RocmVzaG9sZDEYASABKA1SC3FUaHJlc2hvbGQxEiEKDHFfdGhyZXNob2xkMhgCIAEoDVILcVRocmVzaG9sZDISIQoMcV90aHJlc2hvbGQzGAMgASgNUgtxVGhyZXNob2xkMxIhCgxxX3RocmVzaG9sZDQYBCABKA1SC3FUaHJlc2hvbGQ0EiEKDHFfdGhyZXNob2xkNRgFIAEoDVILcVRocmVzaG9sZDUSIQoMcV90aHJlc2hvbGQ2GAYgASgNUgtxVGhyZXNob2xkNhIhCgxxX3RocmVzaG9sZDcYByABKA1SC3FUaHJlc2hvbGQ3IrMFChFHZW1Qb3J0QXR0cmlidXRlcxIdCgpnZW1wb3J0X2lkGAEgASgHUglnZW1wb3J0SWQSHAoKbWF4X3Ffc2l6ZRgCIAEoCVIIbWF4UVNpemUSGQoIcGJpdF9tYXAYAyABKAlSB3BiaXRNYXASJQoOYWVzX2VuY3J5cHRpb24YBCABKAlSDWFlc0VuY3J5cHRpb24SSwoRc2NoZWR1bGluZ19wb2xpY3kYBSABKA4yHi50ZWNoX3Byb2ZpbGUuU2NoZWR1bGluZ1BvbGljeVIQc2NoZWR1bGluZ1BvbGljeRIdCgpwcmlvcml0eV9xGAYgASgHUglwcmlvcml0eVESFgoGd2VpZ2h0GAcgASgHUgZ3ZWlnaHQSQgoOZGlzY2FyZF9wb2xpY3kYCCABKA4yGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZFBvbGljeVINZGlzY2FyZFBvbGljeRJFCg5kaXNjYXJkX2NvbmZpZxgJIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUg1kaXNjYXJkQ29uZmlnEkcKEWRpc2NhcmRfY29uZmlnX3YyGA4gASgLMhsudGVjaF9wcm9maWxlLkRpc2NhcmRDb25maWdSD2Rpc2NhcmRDb25maWdWMhIhCgxpc19tdWx0aWNhc3QYCiABKAlSC2lzTXVsdGljYXN0EigKEG11bHRpY2FzdF9nZW1faWQYCyABKAdSDm11bHRpY2FzdEdlbUlkEj0KG2R5bmFtaWNfYWNjZXNzX2NvbnRyb2xfbGlzdBgMIAEoCVIYZHluYW1pY0FjY2Vzc0NvbnRyb2xMaXN0EjsKGnN0YXRpY19hY2Nlc3NfY29udHJvbF9saXN0GA0gASgJUhdzdGF0aWNBY2Nlc3NDb250cm9sTGlzdCKiAgoTU2NoZWR1bGVyQXR0cmlidXRlcxI1CglkaXJlY3Rpb24YASABKA4yFy50ZWNoX3Byb2ZpbGUuRGlyZWN0aW9uUglkaXJlY3Rpb24SGQoIYWxsb2NfaWQYAiABKA1SB2FsbG9jSWQSPwoNYWRkaXRpb25hbF9idxgDIAEoDjIaLnRlY2hfcHJvZmlsZS5BZGRpdGlvbmFsQldSDGFkZGl0aW9uYWxCdxIaCghwcmlvcml0eRgEIAEoB1IIcHJpb3JpdHkSFgoGd2VpZ2h0GAUgASgHUgZ3ZWlnaHQSRAoOcV9zY2hlZF9wb2xpY3kYBiABKA4yHi50ZWNoX3Byb2ZpbGUuU2NoZWR1bGluZ1BvbGljeVIMcVNjaGVkUG9saWN5IsAGChNFUE9OUXVldWVBdHRyaWJ1dGVzEhwKCm1heF9xX3NpemUYASABKAlSCG1heFFTaXplEhkKCHBiaXRfbWFwGAIgASgJUgdwYml0TWFwEh0KCmdlbXBvcnRfaWQYAyABKA1SCWdlbXBvcnRJZBIlCg5hZXNfZW5jcnlwdGlvbhgEIAEoCVINYWVzRW5jcnlwdGlvbhIhCgx0cmFmZmljX3R5cGUYBSABKAlSC3RyYWZmaWNUeXBlEjQKFnVuc29saWNpdGVkX2dyYW50X3NpemUYBiABKA1SFHVuc29saWNpdGVkR3JhbnRTaXplEikKEG5vbWluYWxfaW50ZXJ2YWwYByABKA1SD25vbWluYWxJbnRlcnZhbBIyChV0b2xlcmF0ZWRfcG9sbF9qaXR0ZXIYCCABKA1SE3RvbGVyYXRlZFBvbGxKaXR0ZXISPgobcmVxdWVzdF90cmFuc21pc3Npb25fcG9saWN5GAkgASgNUhlyZXF1ZXN0VHJhbnNtaXNzaW9uUG9saWN5EhwKCm51bV9xX3NldHMYCiABKA1SCG51bVFTZXRzEjwKDHFfdGhyZXNob2xkcxgLIAEoCzIZLnRlY2hfcHJvZmlsZS5RVGhyZXNob2xkc1ILcVRocmVzaG9sZHMSSwoRc2NoZWR1bGluZ19wb2xpY3kYDCABKA4yHi50ZWNoX3Byb2ZpbGUuU2NoZWR1bGluZ1BvbGljeVIQc2NoZWR1bGluZ1BvbGljeRIdCgpwcmlvcml0eV9xGA0gASgNUglwcmlvcml0eVESFgoGd2VpZ2h0GA4gASgNUgZ3ZWlnaHQSQgoOZGlzY2FyZF9wb2xpY3kYDyABKA4yGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZFBvbGljeVINZGlzY2FyZFBvbGljeRJFCg5kaXNjYXJkX2NvbmZpZxgQIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUg1kaXNjYXJkQ29uZmlnEkcKEWRpc2NhcmRfY29uZmlnX3YyGBEgASgLMhsudGVjaF9wcm9maWxlLkRpc2NhcmRDb25maWdSD2Rpc2NhcmRDb25maWdWMiKuBAoLVGVjaFByb2ZpbGUSEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgNUgd2ZXJzaW9uEiEKDHByb2ZpbGVfdHlwZRgDIAEoCVILcHJvZmlsZVR5cGUSIgoNbnVtX2dlbV9wb3J0cxgEIAEoDVILbnVtR2VtUG9ydHMSSAoQaW5zdGFuY2VfY29udHJvbBgFIAEoCzIdLnRlY2hfcHJvZmlsZS5JbnN0YW5jZUNvbnRyb2xSD2luc3RhbmNlQ29udHJvbBJECgx1c19zY2hlZHVsZXIYBiABKAsyIS50ZWNoX3Byb2ZpbGUuU2NoZWR1bGVyQXR0cmlidXRlc1ILdXNTY2hlZHVsZXISRAoMZHNfc2NoZWR1bGVyGAcgASgLMiEudGVjaF9wcm9maWxlLlNjaGVkdWxlckF0dHJpYnV0ZXNSC2RzU2NoZWR1bGVyEmcKIHVwc3RyZWFtX2dlbV9wb3J0X2F0dHJpYnV0ZV9saXN0GAggAygLMh8udGVjaF9wcm9maWxlLkdlbVBvcnRBdHRyaWJ1dGVzUhx1cHN0cmVhbUdlbVBvcnRBdHRyaWJ1dGVMaXN0EmsKImRvd25zdHJlYW1fZ2VtX3BvcnRfYXR0cmlidXRlX2xpc3QYCSADKAsyHy50ZWNoX3Byb2ZpbGUuR2VtUG9ydEF0dHJpYnV0ZXNSHmRvd25zdHJlYW1HZW1Qb3J0QXR0cmlidXRlTGlzdCLDAwoPRXBvblRlY2hQcm9maWxlEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHdmVyc2lvbhgCIAEoDVIHdmVyc2lvbhIhCgxwcm9maWxlX3R5cGUYAyABKAlSC3Byb2ZpbGVUeXBlEiIKDW51bV9nZW1fcG9ydHMYBCABKA1SC251bUdlbVBvcnRzEkgKEGluc3RhbmNlX2NvbnRyb2wYBSABKAsyHS50ZWNoX3Byb2ZpbGUuSW5zdGFuY2VDb250cm9sUg9pbnN0YW5jZUNvbnRyb2wSIQoMcGFja2FnZV90eXBlGAYgASgJUgtwYWNrYWdlVHlwZRJkCh11cHN0cmVhbV9xdWV1ZV9hdHRyaWJ1dGVfbGlzdBgHIAMoCzIhLnRlY2hfcHJvZmlsZS5FUE9OUXVldWVBdHRyaWJ1dGVzUhp1cHN0cmVhbVF1ZXVlQXR0cmlidXRlTGlzdBJoCh9kb3duc3RyZWFtX3F1ZXVlX2F0dHJpYnV0ZV9saXN0GAggAygLMiEudGVjaF9wcm9maWxlLkVQT05RdWV1ZUF0dHJpYnV0ZXNSHGRvd25zdHJlYW1RdWV1ZUF0dHJpYnV0ZUxpc3Qi6wQKE1RlY2hQcm9maWxlSW5zdGFuY2USEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgNUgd2ZXJzaW9uEjMKFXN1YnNjcmliZXJfaWRlbnRpZmllchgDIAEoCVIUc3Vic2NyaWJlcklkZW50aWZpZXISIQoMcHJvZmlsZV90eXBlGAQgASgJUgtwcm9maWxlVHlwZRIiCg1udW1fZ2VtX3BvcnRzGAUgASgNUgtudW1HZW1Qb3J0cxJIChBpbnN0YW5jZV9jb250cm9sGAYgASgLMh0udGVjaF9wcm9maWxlLkluc3RhbmNlQ29udHJvbFIPaW5zdGFuY2VDb250cm9sEkQKDHVzX3NjaGVkdWxlchgHIAEoCzIhLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJBdHRyaWJ1dGVzUgt1c1NjaGVkdWxlchJECgxkc19zY2hlZHVsZXIYCCABKAsyIS50ZWNoX3Byb2ZpbGUuU2NoZWR1bGVyQXR0cmlidXRlc1ILZHNTY2hlZHVsZXISZwogdXBzdHJlYW1fZ2VtX3BvcnRfYXR0cmlidXRlX2xpc3QYCSADKAsyHy50ZWNoX3Byb2ZpbGUuR2VtUG9ydEF0dHJpYnV0ZXNSHHVwc3RyZWFtR2VtUG9ydEF0dHJpYnV0ZUxpc3QSawoiZG93bnN0cmVhbV9nZW1fcG9ydF9hdHRyaWJ1dGVfbGlzdBgKIAMoCzIfLnRlY2hfcHJvZmlsZS5HZW1Qb3J0QXR0cmlidXRlc1IeZG93bnN0cmVhbUdlbVBvcnRBdHRyaWJ1dGVMaXN0IpsEChdFcG9uVGVjaFByb2ZpbGVJbnN0YW5jZRISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3ZlcnNpb24YAiABKA1SB3ZlcnNpb24SMwoVc3Vic2NyaWJlcl9pZGVudGlmaWVyGAMgASgJUhRzdWJzY3JpYmVySWRlbnRpZmllchIhCgxwcm9maWxlX3R5cGUYBCABKAlSC3Byb2ZpbGVUeXBlEiIKDW51bV9nZW1fcG9ydHMYBSABKA1SC251bUdlbVBvcnRzEhkKCGFsbG9jX2lkGAYgASgNUgdhbGxvY0lkEkgKEGluc3RhbmNlX2NvbnRyb2wYByABKAsyHS50ZWNoX3Byb2ZpbGUuSW5zdGFuY2VDb250cm9sUg9pbnN0YW5jZUNvbnRyb2wSIQoMcGFja2FnZV90eXBlGAggASgJUgtwYWNrYWdlVHlwZRJkCh11cHN0cmVhbV9xdWV1ZV9hdHRyaWJ1dGVfbGlzdBgJIAMoCzIhLnRlY2hfcHJvZmlsZS5FUE9OUXVldWVBdHRyaWJ1dGVzUhp1cHN0cmVhbVF1ZXVlQXR0cmlidXRlTGlzdBJoCh9kb3duc3RyZWFtX3F1ZXVlX2F0dHJpYnV0ZV9saXN0GAogAygLMiEudGVjaF9wcm9maWxlLkVQT05RdWV1ZUF0dHJpYnV0ZXNSHGRvd25zdHJlYW1RdWV1ZUF0dHJpYnV0ZUxpc3QiuwEKEFJlc291cmNlSW5zdGFuY2USEwoFdHBfaWQYASABKA1SBHRwSWQSIQoMcHJvZmlsZV90eXBlGAIgASgJUgtwcm9maWxlVHlwZRIzChVzdWJzY3JpYmVyX2lkZW50aWZpZXIYAyABKAlSFHN1YnNjcmliZXJJZGVudGlmaWVyEhkKCGFsbG9jX2lkGAQgASgNUgdhbGxvY0lkEh8KC2dlbXBvcnRfaWRzGAUgAygNUgpnZW1wb3J0SWRzKjwKCURpcmVjdGlvbhIMCghVUFNUUkVBTRAAEg4KCkRPV05TVFJFQU0QARIRCg1CSURJUkVDVElPTkFMEAIqOwoQU2NoZWR1bGluZ1BvbGljeRIHCgNXUlIQABISCg5TdHJpY3RQcmlvcml0eRABEgoKBkh5YnJpZBACKm4KDEFkZGl0aW9uYWxCVxIVChFBZGRpdGlvbmFsQldfTm9uZRAAEhMKD0FkZGl0aW9uYWxCV19OQRABEhsKF0FkZGl0aW9uYWxCV19CZXN0RWZmb3J0EAISFQoRQWRkaXRpb25hbEJXX0F1dG8QAyo/Cg1EaXNjYXJkUG9saWN5EgwKCFRhaWxEcm9wEAASDQoJV1RhaWxEcm9wEAESBwoDUmVkEAISCAoEV1JlZBADKpwBChxJbmZlcnJlZEFkZGl0aW9uQldJbmRpY2F0aW9uEiUKIUluZmVycmVkQWRkaXRpb25CV0luZGljYXRpb25fTm9uZRAAEigKJEluZmVycmVkQWRkaXRpb25CV0luZGljYXRpb25fQXNzdXJlZBABEisKJ0luZmVycmVkQWRkaXRpb25CV0luZGljYXRpb25fQmVzdEVmZm9ydBACQlgKIG9yZy5vcGVuY29yZC52b2x0aGEudGVjaF9wcm9maWxlWjRnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vdGVjaF9wcm9maWxlSshkCgcSBQ4A/wEBCtEECgEMEgMOABIyxgQgQ29weXJpZ2h0IChjKSAyMDE4IE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6CgogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAoKIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBB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B29sdF9pbmQYASABKAsyFi5vcGVub2x0Lk9sdEluZGljYXRpb25IAFIGb2x0SW5kEjQKCGludGZfaW5kGAIgASgLMhcub3Blbm9sdC5JbnRmSW5kaWNhdGlvbkgAUgdpbnRmSW5kEkEKDWludGZfb3Blcl9pbmQYAyABKAsyGy5vcGVub2x0LkludGZPcGVySW5kaWNhdGlvbkgAUgtpbnRmT3BlckluZBI+CgxvbnVfZGlzY19pbmQYBCABKAsyGi5vcGVub2x0Lk9udURpc2NJbmRpY2F0aW9uSABSCm9udURpc2NJbmQSMQoHb251X2luZBgFIAEoCzIWLm9wZW5vbHQuT251SW5kaWNhdGlvbkgAUgZvbnVJbmQSNAoIb21jaV9pbmQYBiABKAsyFy5vcGVub2x0Lk9tY2lJbmRpY2F0aW9uSABSB29tY2lJbmQSNAoHcGt0X2luZBgHIAEoCzIZLm9wZW5vbHQuUGFja2V0SW5kaWNhdGlvbkgAUgZwa3RJbmQSOAoKcG9ydF9zdGF0cxgIIAEoCzIXLm9wZW5vbHQuUG9ydFN0YXRpc3RpY3NIAFIJcG9ydFN0YXRzEjgKCmZsb3dfc3RhdHMYCSABKAsyFy5vcGVub2x0LkZsb3dTdGF0aXN0aWNzSABSCWZsb3dTdGF0cxI3CglhbGFybV9pbmQYCiABKAsyGC5vcGVub2x0LkFsYXJtSW5kaWNhdGlvbkgAUghhbGFybUluZEIGCgRkYXRhIusNCg9BbGFybUluZGljYXRpb24SMQoHbG9zX2luZBgBIAEoCzIWLm9wZW5vbHQuTG9zSW5kaWNhdGlvbkgAUgZsb3NJbmQSRAoOZHlpbmdfZ2FzcF9pbmQYAiABKAsyHC5vcGVub2x0LkR5aW5nR2FzcEluZGljYXRpb25IAFIMZHlpbmdHYXNwSW5kEkEKDW9udV9hbGFybV9pbmQYAyABKAsyGy5vcGVub2x0Lk9udUFsYXJtSW5kaWNhdGlvbkgAUgtvbnVBbGFybUluZBJXChRvbnVfc3RhcnR1cF9mYWlsX2luZBgEIAEoCzIkLm9wZW5vbHQuT251U3RhcnR1cEZhaWx1cmVJbmRpY2F0aW9uSABSEW9udVN0YXJ0dXBGYWlsSW5kEloKFm9udV9zaWduYWxfZGVncmFkZV9pbmQYBSABKAsyIy5vcGVub2x0Lk9udVNpZ25hbERlZ3JhZGVJbmRpY2F0aW9uSABSE29udVNpZ25hbERlZ3JhZGVJbmQSWwoXb251X2RyaWZ0X29mX3dpbmRvd19pbmQYBiABKAsyIy5vcGVub2x0Lk9udURyaWZ0T2ZXaW5kb3dJbmRpY2F0aW9uSABSE29udURyaWZ0T2ZXaW5kb3dJbmQSVAoRb251X2xvc3Nfb21jaV9pbmQYByABKAsyJy5vcGVub2x0Lk9udUxvc3NPZk9tY2lDaGFubmVsSW5kaWNhdGlvbkgAUg5vbnVMb3NzT21jaUluZBJXChRvbnVfc2lnbmFsc19mYWlsX2luZBgIIAEoCzIkLm9wZW5vbHQuT251U2lnbmFsc0ZhaWx1cmVJbmRpY2F0aW9uSABSEW9udVNpZ25hbHNGYWlsSW5kEk8KDG9udV90aXdpX2luZBgJIAEoCzIrLm9wZW5vbHQuT251VHJhbnNtaXNzaW9uSW50ZXJmZXJlbmNlV2FybmluZ0gAUgpvbnVUaXdpSW5kEmAKF29udV9hY3RpdmF0aW9uX2ZhaWxfaW5kGAogASgLMicub3Blbm9sdC5PbnVBY3RpdmF0aW9uRmFpbHVyZUluZGljYXRpb25IAFIUb251QWN0aXZhdGlvbkZhaWxJbmQSYAoYb251X3Byb2Nlc3NpbmdfZXJyb3JfaW5kGAsgASgLMiUub3Blbm9sdC5PbnVQcm9jZXNzaW5nRXJyb3JJbmRpY2F0aW9uSABSFW9udVByb2Nlc3NpbmdFcnJvckluZBJlChlvbnVfbG9zc19vZl9zeW5jX2ZhaWxfaW5kGAwgASgLMioub3Blbm9sdC5PbnVMb3NzT2ZLZXlTeW5jRmFpbHVyZUluZGljYXRpb25IAFIUb251TG9zc09mU3luY0ZhaWxJbmQSVQoVb251X2l0dV9wb25fc3RhdHNfaW5kGA0gASgLMiEub3Blbm9sdC5PbnVJdHVQb25TdGF0c0luZGljYXRpb25IAFIRb251SXR1UG9uU3RhdHNJbmQSbAocb251X2RlYWN0aXZhdGlvbl9mYWlsdXJlX2luZBgOIAEoCzIpLm9wZW5vbHQuT251RGVhY3RpdmF0aW9uRmFpbHVyZUluZGljYXRpb25IAFIZb251RGVhY3RpdmF0aW9uRmFpbHVyZUluZBJXChVvbnVfcmVtb3RlX2RlZmVjdF9pbmQYDyABKAsyIi5vcGVub2x0Lk9udVJlbW90ZURlZmVjdEluZGljYXRpb25IAFISb251UmVtb3RlRGVmZWN0SW5kEnMKHG9udV9sb3NzX2dlbV9kZWxpbmVhdGlvbl9pbmQYECABKAsyMS5vcGVub2x0Lk9udUxvc3NPZkdFTUNoYW5uZWxEZWxpbmVhdGlvbkluZGljYXRpb25IAFIYb251TG9zc0dlbURlbGluZWF0aW9uSW5kEnYKIG9udV9waHlzaWNhbF9lcXVpcG1lbnRfZXJyb3JfaW5kGBEgASgLMiwub3Blbm9sdC5PbnVQaHlzaWNhbEVxdWlwbWVudEVycm9ySW5kaWNhdGlvbkgAUhxvbnVQaHlzaWNhbEVxdWlwbWVudEVycm9ySW5kElsKE29udV9sb3NzX29mX2Fja19pbmQYEiABKAsyKy5vcGVub2x0Lk9udUxvc3NPZkFja25vd2xlZGdlbWVudEluZGljYXRpb25IAFIPb251TG9zc09mQWNrSW5kEm8KG29udV9kaWZmX3JlYWNoX2V4Y2VlZGVkX2luZBgTIAEoCzIvLm9wZW5vbHQuT251RGlmZmVyZW50aWFsUmVhY2hFeGNlZWRlZEluZGljYXRpb25IAFIXb251RGlmZlJlYWNoRXhjZWVkZWRJbmRCBgoEZGF0YSIuCg1PbHRJbmRpY2F0aW9uEh0KCm9wZXJfc3RhdGUYASABKAlSCW9wZXJTdGF0ZSJICg5JbnRmSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSHQoKb3Blcl9zdGF0ZRgCIAEoCVIJb3BlclN0YXRlImgKEU9udURpc2NJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBI6Cg1zZXJpYWxfbnVtYmVyGAIgASgLMhUub3Blbm9sdC5TZXJpYWxOdW1iZXJSDHNlcmlhbE51bWJlciKTBAoNT251SW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIdCgpvcGVyX3N0YXRlGAMgASgJUglvcGVyU3RhdGUSHwoLYWRtaW5fc3RhdGUYBSABKAlSCmFkbWluU3RhdGUSOgoNc2VyaWFsX251bWJlchgEIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUgxzZXJpYWxOdW1iZXISTAoLZmFpbF9yZWFzb24YBiABKA4yKy5vcGVub2x0Lk9udUluZGljYXRpb24uQWN0aXZhdGlvbkZhaWxSZWFzb25SCmZhaWxSZWFzb24ihwIKFEFjdGl2YXRpb25GYWlsUmVhc29uEiMKH09OVV9BQ1RJVkFUSU9OX0ZBSUxfUkVBU09OX05PTkUQABImCiJPTlVfQUNUSVZBVElPTl9GQUlMX1JFQVNPTl9SQU5HSU5HEAESNgoyT05VX0FDVElWQVRJT05fRkFJTF9SRUFTT05fUEFTU1dPUkRfQVVUSEVOVElDQVRJT04QAhIiCh5PTlVfQUNUSVZBVElPTl9GQUlMX1JFQVNPTl9MT1MQAxIhCh1PTlVfQUNUSVZBVElPTl9GQUlMX09OVV9BTEFSTRAEEiMKH09OVV9BQ1RJVkFUSU9OX0ZBSUxfU1dJVENIX09WRVIQBSJ2ChJJbnRmT3BlckluZGljYXRpb24SEgoEdHlwZRgBIAEoCVIEdHlwZRIXCgdpbnRmX2lkGAIgASgHUgZpbnRmSWQSHQoKb3Blcl9zdGF0ZRgDIAEoCVIJb3BlclN0YXRlEhQKBXNwZWVkGAQgASgHUgVzcGVlZCJSCg5PbWNpSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIQCgNwa3QYAyABKAxSA3BrdCLxAQoQUGFja2V0SW5kaWNhdGlvbhIbCglpbnRmX3R5cGUYBSABKAlSCGludGZUeXBlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYCCABKAdSBW9udUlkEhUKBnVuaV9pZBgJIAEoB1IFdW5pSWQSHQoKZ2VtcG9ydF9pZBgCIAEoB1IJZ2VtcG9ydElkEhcKB2Zsb3dfaWQYAyABKAdSBmZsb3dJZBIXCgdwb3J0X25vGAYgASgHUgZwb3J0Tm8SFgoGY29va2llGAcgASgGUgZjb29raWUSEAoDcGt0GAQgASgMUgNwa3QiJAoJSW50ZXJmYWNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZCI8CglIZWFydGJlYXQSLwoTaGVhcnRiZWF0X3NpZ25hdHVyZRgBIAEoB1ISaGVhcnRiZWF0U2lnbmF0dXJlIqwBCgNPbnUSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSOgoNc2VyaWFsX251bWJlchgDIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUgxzZXJpYWxOdW1iZXISEAoDcGlyGAQgASgHUgNwaXISJwoPb21jY19lbmNyeXB0aW9uGAUgASgIUg5vbWNjRW5jcnlwdGlvbiKxAQoST251TG9naWNhbERpc3RhbmNlEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEjkKGWxvZ2ljYWxfb251X2Rpc3RhbmNlX3plcm8YAyABKAdSFmxvZ2ljYWxPbnVEaXN0YW5jZVplcm8SMAoUbG9naWNhbF9vbnVfZGlzdGFuY2UYBCABKAdSEmxvZ2ljYWxPbnVEaXN0YW5jZSJLCgdPbWNpTXNnEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhAKA3BrdBgDIAEoDFIDcGt0IoUBCglPbnVQYWNrZXQSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFwoHcG9ydF9ubxgEIAEoB1IGcG9ydE5vEh0KCmdlbXBvcnRfaWQYBSABKAdSCWdlbXBvcnRJZBIQCgNwa3QYAyABKAxSA3BrdCI5CgxVcGxpbmtQYWNrZXQSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhAKA3BrdBgCIAEoDFIDcGt0IpsHCgpEZXZpY2VJbmZvEhYKBnZlbmRvchgBIAEoCVIGdmVuZG9yEhQKBW1vZGVsGAIgASgJUgVtb2RlbBIpChBoYXJkd2FyZV92ZXJzaW9uGAMgASgJUg9oYXJkd2FyZVZlcnNpb24SKQoQZmlybXdhcmVfdmVyc2lvbhgEIAEoCVIPZmlybXdhcmVWZXJzaW9uEhsKCWRldmljZV9pZBgQIAEoCVIIZGV2aWNlSWQSMAoUZGV2aWNlX3NlcmlhbF9udW1iZXIYESABKAlSEmRldmljZVNlcmlhbE51bWJlchIxChRwcmV2aW91c2x5X2Nvbm5lY3RlZBgTIAEoCFITcHJldmlvdXNseUNvbm5lY3RlZBIbCglwb25fcG9ydHMYDCABKAdSCHBvblBvcnRzEkAKBnJhbmdlcxgPIAMoCzIoLm9wZW5vbHQuRGV2aWNlSW5mby5EZXZpY2VSZXNvdXJjZVJhbmdlc1IGcmFuZ2VzGpUEChREZXZpY2VSZXNvdXJjZVJhbmdlcxIZCghpbnRmX2lkcxgBIAMoB1IHaW50ZklkcxIeCgp0ZWNobm9sb2d5GAIgASgJUgp0ZWNobm9sb2d5EkMKBXBvb2xzGAMgAygLMi0ub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzLlBvb2xSBXBvb2xzGvwCCgRQb29sEkoKBHR5cGUYASABKA4yNi5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXMuUG9vbC5Qb29sVHlwZVIEdHlwZRJTCgdzaGFyaW5nGAIgASgOMjkub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzLlBvb2wuU2hhcmluZ1R5cGVSB3NoYXJpbmcSFAoFc3RhcnQYAyABKAdSBXN0YXJ0EhAKA2VuZBgEIAEoB1IDZW5kIkEKCFBvb2xUeXBlEgoKBk9OVV9JRBAAEgwKCEFMTE9DX0lEEAESDgoKR0VNUE9SVF9JRBACEgsKB0ZMT1dfSUQQAyJoCgtTaGFyaW5nVHlwZRIWChJERURJQ0FURURfUEVSX0lOVEYQABIfChtTSEFSRURfQllfQUxMX0lOVEZfQUxMX1RFQ0gQARIgChxTSEFSRURfQllfQUxMX0lOVEZfU0FNRV9URUNIEAJKBAgFEAxKBAgNEA5KBAgOEA8ihAMKCkNsYXNzaWZpZXISFQoGb190cGlkGAEgASgHUgVvVHBpZBITCgVvX3ZpZBgCIAEoB1IEb1ZpZBIVCgZpX3RwaWQYAyABKAdSBWlUcGlkEhMKBWlfdmlkGAQgASgHUgRpVmlkEhcKB29fcGJpdHMYBSABKAdSBm9QYml0cxIXCgdpX3BiaXRzGAYgASgHUgZpUGJpdHMSGQoIZXRoX3R5cGUYByABKAdSB2V0aFR5cGUSFwoHZHN0X21hYxgIIAEoDFIGZHN0TWFjEhcKB3NyY19tYWMYCSABKAxSBnNyY01hYxIZCghpcF9wcm90bxgKIAEoB1IHaXBQcm90bxIVCgZkc3RfaXAYCyABKAdSBWRzdElwEhUKBnNyY19pcBgMIAEoB1IFc3JjSXASGQoIc3JjX3BvcnQYDSABKAdSB3NyY1BvcnQSGQoIZHN0X3BvcnQYDiABKAdSB2RzdFBvcnQSIAoMcGt0X3RhZ190eXBlGA8gASgJUgpwa3RUYWdUeXBlIoUDCglBY3Rpb25DbWQSIgoNYWRkX291dGVyX3RhZxgBIAEoCFILYWRkT3V0ZXJUYWcSKAoQcmVtb3ZlX291dGVyX3RhZxgCIAEoCFIOcmVtb3ZlT3V0ZXJUYWcSIAoMdHJhcF90b19ob3N0GAMgASgIUgp0cmFwVG9Ib3N0EiwKEnJlbWFya19vdXRlcl9wYml0cxgEIAEoCFIQcmVtYXJrT3V0ZXJQYml0cxIsChJyZW1hcmtfaW5uZXJfcGJpdHMYBSABKAhSEHJlbWFya0lubmVyUGJpdHMSIgoNYWRkX2lubmVyX3RhZxgGIAEoCFILYWRkSW5uZXJUYWcSKAoQcmVtb3ZlX2lubmVyX3RhZxgHIAEoCFIOcmVtb3ZlSW5uZXJUYWcSLgoTdHJhbnNsYXRlX2lubmVyX3RhZxgIIAEoCFIRdHJhbnNsYXRlSW5uZXJUYWcSLgoTdHJhbnNsYXRlX291dGVyX3RhZxgJIAEoCFIRdHJhbnNsYXRlT3V0ZXJUYWciuAEKBkFjdGlvbhIkCgNjbWQYASABKAsyEi5vcGVub2x0LkFjdGlvbkNtZFIDY21kEhMKBW9fdmlkGAIgASgHUgRvVmlkEhcKB29fcGJpdHMYAyABKAdSBm9QYml0cxIVCgZvX3RwaWQYBCABKAdSBW9UcGlkEhMKBWlfdmlkGAUgASgHUgRpVmlkEhcKB2lfcGJpdHMYBiABKAdSBmlQYml0cxIVCgZpX3RwaWQYByABKAdSBWlUcGlkIscGCgRGbG93EiQKDmFjY2Vzc19pbnRmX2lkGAEgASgPUgxhY2Nlc3NJbnRmSWQSFQoGb251X2lkGAIgASgPUgVvbnVJZBIVCgZ1bmlfaWQYCyABKA9SBXVuaUlkEhcKB2Zsb3dfaWQYAyABKAZSBmZsb3dJZBIqChFzeW1tZXRyaWNfZmxvd19pZBgSIAEoBlIPc3ltbWV0cmljRmxvd0lkEhsKCWZsb3dfdHlwZRgEIAEoCVIIZmxvd1R5cGUSGQoIYWxsb2NfaWQYCiABKA9SB2FsbG9jSWQSJgoPbmV0d29ya19pbnRmX2lkGAUgASgPUg1uZXR3b3JrSW50ZklkEh0KCmdlbXBvcnRfaWQYBiABKA9SCWdlbXBvcnRJZBIzCgpjbGFzc2lmaWVyGAcgASgLMhMub3Blbm9sdC5DbGFzc2lmaWVyUgpjbGFzc2lmaWVyEicKBmFjdGlvbhgIIAEoCzIPLm9wZW5vbHQuQWN0aW9uUgZhY3Rpb24SGgoIcHJpb3JpdHkYCSABKA9SCHByaW9yaXR5EhYKBmNvb2tpZRgMIAEoBlIGY29va2llEhcKB3BvcnRfbm8YDSABKAdSBnBvcnRObxIZCghncm91cF9pZBgOIAEoB1IHZ3JvdXBJZBImCg90ZWNoX3Byb2ZpbGVfaWQYDyABKAdSDXRlY2hQcm9maWxlSWQSJQoOcmVwbGljYXRlX2Zsb3cYECABKAhSDXJlcGxpY2F0ZUZsb3cSSAoPcGJpdF90b19nZW1wb3J0GBEgAygLMiAub3Blbm9sdC5GbG93LlBiaXRUb0dlbXBvcnRFbnRyeVINcGJpdFRvR2VtcG9ydBJFCg5nZW1wb3J0X3RvX2FlcxgTIAMoCzIfLm9wZW5vbHQuRmxvdy5HZW1wb3J0VG9BZXNFbnRyeVIMZ2VtcG9ydFRvQWVzGkAKElBiaXRUb0dlbXBvcnRFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGj8KEUdlbXBvcnRUb0Flc0VudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEiVAoMU2VyaWFsTnVtYmVyEhsKCXZlbmRvcl9pZBgBIAEoDFIIdmVuZG9ySWQSJwoPdmVuZG9yX3NwZWNpZmljGAIgASgMUg52ZW5kb3JTcGVjaWZpYyL+CwoOUG9ydFN0YXRpc3RpY3MSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhkKCHJ4X2J5dGVzGAIgASgGUgdyeEJ5dGVzEh0KCnJ4X3BhY2tldHMYAyABKAZSCXJ4UGFja2V0cxIoChByeF91Y2FzdF9wYWNrZXRzGAQgASgGUg5yeFVjYXN0UGFja2V0cxIoChByeF9tY2FzdF9wYWNrZXRzGAUgASgGUg5yeE1jYXN0UGFja2V0cxIoChByeF9iY2FzdF9wYWNrZXRzGAYgASgGUg5yeEJjYXN0UGFja2V0cxIoChByeF9lcnJvcl9wYWNrZXRzGAcgASgGUg5yeEVycm9yUGFja2V0cxIbCglyeF9mcmFtZXMYESABKAZSCHJ4RnJhbWVzEiAKDHJ4X2ZyYW1lc182NBgSIAEoBlIKcnhGcmFtZXM2NBInChByeF9mcmFtZXNfNjVfMTI3GBMgASgGUg1yeEZyYW1lczY1MTI3EikKEXJ4X2ZyYW1lc18xMjhfMjU1GBQgASgGUg5yeEZyYW1lczEyODI1NRIpChFyeF9mcmFtZXNfMjU2XzUxMRgVIAEoBlIOcnhGcmFtZXMyNTY1MTESKwoScnhfZnJhbWVzXzUxMl8xMDIzGBYgASgGUg9yeEZyYW1lczUxMjEwMjMSLQoTcnhfZnJhbWVzXzEwMjRfMTUxOBgXIAEoBlIQcnhGcmFtZXMxMDI0MTUxOBItChNyeF9mcmFtZXNfMTUxOV8yMDQ3GBggASgGUhByeEZyYW1lczE1MTkyMDQ3Ei0KE3J4X2ZyYW1lc18yMDQ4XzQwOTUYGSABKAZSEHJ4RnJhbWVzMjA0ODQwOTUSLQoTcnhfZnJhbWVzXzQwOTZfOTIxNhgaIAEoBlIQcnhGcmFtZXM0MDk2OTIxNhIvChRyeF9mcmFtZXNfOTIxN18xNjM4MxgbIAEoBlIRcnhGcmFtZXM5MjE3MTYzODMSIgoNcnhfY3JjX2Vycm9ycxgOIAEoBlILcnhDcmNFcnJvcnMSGQoIdHhfYnl0ZXMYCCABKAZSB3R4Qnl0ZXMSHQoKdHhfcGFja2V0cxgJIAEoBlIJdHhQYWNrZXRzEigKEHR4X3VjYXN0X3BhY2tldHMYCiABKAZSDnR4VWNhc3RQYWNrZXRzEigKEHR4X21jYXN0X3BhY2tldHMYCyABKAZSDnR4TWNhc3RQYWNrZXRzEigKEHR4X2JjYXN0X3BhY2tldHMYDCABKAZSDnR4QmNhc3RQYWNrZXRzEigKEHR4X2Vycm9yX3BhY2tldHMYDSABKAZSDnR4RXJyb3JQYWNrZXRzEhsKCXR4X2ZyYW1lcxgcIAEoBlIIdHhGcmFtZXMSIAoMdHhfZnJhbWVzXzY0GB0gASgGUgp0eEZyYW1lczY0EicKEHR4X2ZyYW1lc182NV8xMjcYHiABKAZSDXR4RnJhbWVzNjUxMjcSKQoRdHhfZnJhbWVzXzEyOF8yNTUYHyABKAZSDnR4RnJhbWVzMTI4MjU1EikKEXR4X2ZyYW1lc18yNTZfNTExGCAgASgGUg50eEZyYW1lczI1NjUxMRIrChJ0eF9mcmFtZXNfNTEyXzEwMjMYISABKAZSD3R4RnJhbWVzNTEyMTAyMxItChN0eF9mcmFtZXNfMTAyNF8xNTE4GCIgASgGUhB0eEZyYW1lczEwMjQxNTE4Ei0KE3R4X2ZyYW1lc18xNTE5XzIwNDcYIyABKAZSEHR4RnJhbWVzMTUxOTIwNDcSLQoTdHhfZnJhbWVzXzIwNDhfNDA5NRgkIAEoBlIQdHhGcmFtZXMyMDQ4NDA5NRItChN0eF9mcmFtZXNfNDA5Nl85MjE2GCUgASgGUhB0eEZyYW1lczQwOTY5MjE2Ei8KFHR4X2ZyYW1lc185MjE3XzE2MzgzGCYgASgGUhF0eEZyYW1lczkyMTcxNjM4MxIdCgpiaXBfZXJyb3JzGA8gASgGUgliaXBFcnJvcnMSHAoJdGltZXN0YW1wGBAgASgHUgl0aW1lc3RhbXAi5gcKDU9udVN0YXRpc3RpY3MSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSJQoOcG9zaXRpdmVfZHJpZnQYAyABKAZSDXBvc2l0aXZlRHJpZnQSJQoObmVnYXRpdmVfZHJpZnQYBCABKAZSDW5lZ2F0aXZlRHJpZnQSOAoYZGVsaW1pdGVyX21pc3NfZGV0ZWN0aW9uGAUgASgGUhZkZWxpbWl0ZXJNaXNzRGV0ZWN0aW9uEh0KCmJpcF9lcnJvcnMYBiABKAZSCWJpcEVycm9ycxIbCgliaXBfdW5pdHMYByABKAZSCGJpcFVuaXRzEjIKFWZlY19jb3JyZWN0ZWRfc3ltYm9scxgIIAEoBlITZmVjQ29ycmVjdGVkU3ltYm9scxI2ChdmZWNfY29kZXdvcmRzX2NvcnJlY3RlZBgJIAEoBlIVZmVjQ29kZXdvcmRzQ29ycmVjdGVkEj4KG2ZlY19jb2Rld29yZHNfdW5jb3JyZWN0YWJsZRgKIAEoBlIZZmVjQ29kZXdvcmRzVW5jb3JyZWN0YWJsZRIjCg1mZWNfY29kZXdvcmRzGAsgASgGUgxmZWNDb2Rld29yZHMSLgoTZmVjX2NvcnJlY3RlZF91bml0cxgMIAEoBlIRZmVjQ29ycmVjdGVkVW5pdHMSJgoPeGdlbV9rZXlfZXJyb3JzGA0gASgGUg14Z2VtS2V5RXJyb3JzEhsKCXhnZW1fbG9zcxgOIAEoBlIIeGdlbUxvc3MSJgoPcnhfcGxvYW1zX2Vycm9yGA8gASgGUg1yeFBsb2Ftc0Vycm9yEisKEnJ4X3Bsb2Ftc19ub25faWRsZRgQIAEoBlIPcnhQbG9hbXNOb25JZGxlEhcKB3J4X29tY2kYESABKAZSBnJ4T21jaRI4ChlyeF9vbWNpX3BhY2tldHNfY3JjX2Vycm9yGBIgASgGUhVyeE9tY2lQYWNrZXRzQ3JjRXJyb3ISGQoIcnhfYnl0ZXMYEyABKAZSB3J4Qnl0ZXMSHQoKcnhfcGFja2V0cxgUIAEoBlIJcnhQYWNrZXRzEhkKCHR4X2J5dGVzGBUgASgGUgd0eEJ5dGVzEh0KCnR4X3BhY2tldHMYFiABKAZSCXR4UGFja2V0cxIhCgxiZXJfcmVwb3J0ZWQYFyABKAZSC2JlclJlcG9ydGVkEh8KC2xjZGdfZXJyb3JzGBggASgGUgpsY2RnRXJyb3JzEh0KCnJkaV9lcnJvcnMYGSABKAZSCXJkaUVycm9ycxIcCgl0aW1lc3RhbXAYGiABKAdSCXRpbWVzdGFtcCLdAQoRR2VtUG9ydFN0YXRpc3RpY3MSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEh0KCmdlbXBvcnRfaWQYAiABKAdSCWdlbXBvcnRJZBIdCgpyeF9wYWNrZXRzGAMgASgGUglyeFBhY2tldHMSGQoIcnhfYnl0ZXMYBCABKAZSB3J4Qnl0ZXMSHQoKdHhfcGFja2V0cxgFIAEoBlIJdHhQYWNrZXRzEhkKCHR4X2J5dGVzGAYgASgGUgd0eEJ5dGVzEhwKCXRpbWVzdGFtcBgaIAEoB1IJdGltZXN0YW1wIrsBCg5GbG93U3RhdGlzdGljcxIXCgdmbG93X2lkGAEgASgHUgZmbG93SWQSGQoIcnhfYnl0ZXMYAiABKAZSB3J4Qnl0ZXMSHQoKcnhfcGFja2V0cxgDIAEoBlIJcnhQYWNrZXRzEhkKCHR4X2J5dGVzGAggASgGUgd0eEJ5dGVzEh0KCnR4X3BhY2tldHMYCSABKAZSCXR4UGFja2V0cxIcCgl0aW1lc3RhbXAYECABKAdSCXRpbWVzdGFtcCJACg1Mb3NJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIWCgZzdGF0dXMYAiABKAlSBnN0YXR1cyJdChNEeWluZ0dhc3BJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIqMCChJPbnVBbGFybUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSHQoKbG9zX3N0YXR1cxgDIAEoCVIJbG9zU3RhdHVzEh0KCmxvYl9zdGF0dXMYBCABKAlSCWxvYlN0YXR1cxIoChBsb3BjX21pc3Nfc3RhdHVzGAUgASgJUg5sb3BjTWlzc1N0YXR1cxIxChVsb3BjX21pY19lcnJvcl9zdGF0dXMYBiABKAlSEmxvcGNNaWNFcnJvclN0YXR1cxIfCgtsb2ZpX3N0YXR1cxgHIAEoCVIKbG9maVN0YXR1cxIhCgxsb2FtaV9zdGF0dXMYCCABKAlSC2xvYW1pU3RhdHVzImUKG09udVN0YXJ0dXBGYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyKZAQoaT251U2lnbmFsRGVncmFkZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSMwoWaW52ZXJzZV9iaXRfZXJyb3JfcmF0ZRgEIAEoB1ITaW52ZXJzZUJpdEVycm9yUmF0ZSKTAQoaT251RHJpZnRPZldpbmRvd0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSFAoFZHJpZnQYBCABKAdSBWRyaWZ0EhcKB25ld19lcWQYBSABKAdSBm5ld0VxZCJoCh5PbnVMb3NzT2ZPbWNpQ2hhbm5lbEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMimgEKG09udVNpZ25hbHNGYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIzChZpbnZlcnNlX2JpdF9lcnJvcl9yYXRlGAQgASgHUhNpbnZlcnNlQml0RXJyb3JSYXRlIoIBCiJPbnVUcmFuc21pc3Npb25JbnRlcmZlcmVuY2VXYXJuaW5nEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEhQKBWRyaWZ0GAQgASgHUgVkcmlmdCJxCh5PbnVBY3RpdmF0aW9uRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSHwoLZmFpbF9yZWFzb24YAyABKAdSCmZhaWxSZWFzb24iawohT251TG9zc09mS2V5U3luY0ZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIlQKElJkaUVycm9ySW5kaWNhdGlvbhImCg9yZGlfZXJyb3JfY291bnQYASABKAZSDXJkaUVycm9yQ291bnQSFgoGc3RhdHVzGAIgASgJUgZzdGF0dXMilgEKGE9udUl0dVBvblN0YXRzSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBJBCg1yZGlfZXJyb3JfaW5kGAMgASgLMhsub3Blbm9sdC5SZGlFcnJvckluZGljYXRpb25IAFILcmRpRXJyb3JJbmRCBwoFc3RhdHMiTgocT251UHJvY2Vzc2luZ0Vycm9ySW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZCJqCiBPbnVEZWFjdGl2YXRpb25GYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyJqChlPbnVSZW1vdGVEZWZlY3RJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEh0KCnJkaV9lcnJvcnMYAyABKAZSCXJkaUVycm9ycyKhAQooT251TG9zc09mR0VNQ2hhbm5lbERlbGluZWF0aW9uSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxItChJkZWxpbmVhdGlvbl9lcnJvcnMYBCABKAdSEWRlbGluZWF0aW9uRXJyb3JzIm0KI09udVBoeXNpY2FsRXF1aXBtZW50RXJyb3JJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzImwKIk9udUxvc3NPZkFja25vd2xlZGdlbWVudEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMijAEKJk9udURpZmZlcmVudGlhbFJlYWNoRXhjZWVkZWRJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEhoKCGRpc3RhbmNlGAQgASgHUghkaXN0YW5jZSL2AQoLR3JvdXBNZW1iZXISIQoMaW50ZXJmYWNlX2lkGAEgASgNUgtpbnRlcmZhY2VJZBJJCg5pbnRlcmZhY2VfdHlwZRgCIAEoDjIiLm9wZW5vbHQuR3JvdXBNZW1iZXIuSW50ZXJmYWNlVHlwZVINaW50ZXJmYWNlVHlwZRIeCgtnZW1fcG9ydF9pZBgDIAEoDVIJZ2VtUG9ydElkEhoKCHByaW9yaXR5GAQgASgNUghwcmlvcml0eSI9Cg1JbnRlcmZhY2VUeXBlEgcKA1BPThAAEhAKDEVQT05fMUdfUEFUSBABEhEKDUVQT05fMTBHX1BBVEgQAiKGAgoFR3JvdXASGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQSPAoHY29tbWFuZBgCIAEoDjIiLm9wZW5vbHQuR3JvdXAuR3JvdXBNZW1iZXJzQ29tbWFuZFIHY29tbWFuZBIuCgdtZW1iZXJzGAMgAygLMhQub3Blbm9sdC5Hcm91cE1lbWJlclIHbWVtYmVycxInCgZhY3Rpb24YBCABKAsyDy5vcGVub2x0LkFjdGlvblIGYWN0aW9uIksKE0dyb3VwTWVtYmVyc0NvbW1hbmQSDwoLQUREX01FTUJFUlMQABISCg5SRU1PVkVfTUVNQkVSUxABEg8KC1NFVF9NRU1CRVJTEAIiXQoKVmFsdWVQYXJhbRIeCgNvbnUYASABKAsyDC5vcGVub2x0Lk9udVIDb251Ei8KBXZhbHVlGAIgASgOMhkuZXh0ZW5zaW9uLlZhbHVlVHlwZS5UeXBlUgV2YWx1ZSLDAgoOUG9uUnhQb3dlckRhdGESFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSUgoLZmFpbF9yZWFzb24YBCABKA4yMS5vcGVub2x0LlBvblJ4UG93ZXJEYXRhLlJzc2lNZWFzdXJlbWVudEZhaWxSZWFzb25SCmZhaWxSZWFzb24SKQoRcnhfcG93ZXJfbWVhbl9kYm0YBSABKAFSDnJ4UG93ZXJNZWFuRGJtImoKGVJzc2lNZWFzdXJlbWVudEZhaWxSZWFzb24SFAoQRkFJTF9SRUFTT05fTk9ORRAAEhwKGEZBSUxfUkVBU09OX05PX0RFTElNSVRFUhABEhkKFUZBSUxfUkVBU09OX05PX0FDQ0VTUxACIgcKBUVtcHR5Mp8UCgdPcGVub2x0EkQKCkRpc2FibGVPbHQSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIWgtPkkwIQIgsvdjEvRGlzYWJsZToBKhJGCgtSZWVuYWJsZU9sdBIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IheC0+STAhEiDC92MS9SZWVuYWJsZToBKhJFCgtBY3RpdmF0ZU9udRIMLm9wZW5vbHQuT251Gg4ub3Blbm9sdC5FbXB0eSIYgtPkkwISIg0vdjEvRW5hYmxlT251OgEqEkgKDURlYWN0aXZhdGVPbnUSDC5vcGVub2x0Lk9udRoOLm9wZW5vbHQuRW1wdHkiGYLT5JMCEyIOL3YxL0Rpc2FibGVPbnU6ASoSQwoJRGVsZXRlT251Egwub3Blbm9sdC5PbnUaDi5vcGVub2x0LkVtcHR5IhiC0+STAhIiDS92MS9EZWxldGVPbnU6ASoSSQoKT21jaU1zZ091dBIQLm9wZW5vbHQuT21jaU1zZxoOLm9wZW5vbHQuRW1wdHkiGYLT5JMCEyIOL3YxL09tY2lNc2dPdXQ6ASoSTwoMT251UGFja2V0T3V0EhIub3Blbm9sdC5PbnVQYWNrZXQaDi5vcGVub2x0LkVtcHR5IhuC0+STAhUiEC92MS9PbnVQYWNrZXRPdXQ6ASoSWAoPVXBsaW5rUGFja2V0T3V0EhUub3Blbm9sdC5VcGxpbmtQYWNrZXQaDi5vcGVub2x0LkVtcHR5Ih6C0+STAhgiEy92MS9VcGxpbmtQYWNrZXRPdXQ6ASoSQAoHRmxvd0FkZBINLm9wZW5vbHQuRmxvdxoOLm9wZW5vbHQuRW1wdHkiFoLT5JMCECILL3YxL0Zsb3dBZGQ6ASoSRgoKRmxvd1JlbW92ZRINLm9wZW5vbHQuRmxvdxoOLm9wZW5vbHQuRW1wdHkiGYLT5JMCEyIOL3YxL0Zsb3dSZW1vdmU6ASoSUwoOSGVhcnRiZWF0Q2hlY2sSDi5vcGVub2x0LkVtcHR5GhIub3Blbm9sdC5IZWFydGJlYXQiHYLT5JMCFyISL3YxL0hlYXJ0YmVhdENoZWNrOgEqEk0KC0VuYWJsZVBvbklmEhIub3Blbm9sdC5JbnRlcmZhY2UaDi5vcGVub2x0LkVtcHR5IhqC0+STAhQiDy92MS9FbmFibGVQb25JZjoBKhJPCgxEaXNhYmxlUG9uSWYSEi5vcGVub2x0LkludGVyZmFjZRoOLm9wZW5vbHQuRW1wdHkiG4LT5JMCFSIQL3YxL0Rpc2FibGVQb25JZjoBKhJSCg1HZXREZXZpY2VJbmZvEg4ub3Blbm9sdC5FbXB0eRoTLm9wZW5vbHQuRGV2aWNlSW5mbyIcgtPkkwIWIhEvdjEvR2V0RGV2aWNlSW5mbzoBKhI/CgZSZWJvb3QSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIVgtPkkwIPIgovdjEvUmVib290OgEqElUKEUNvbGxlY3RTdGF0aXN0aWNzEg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiIILT5JMCGiIVL3YxL0NvbGxlY3RTdGF0aXN0aWNzOgEqElkKEEdldE9udVN0YXRpc3RpY3MSDC5vcGVub2x0Lk9udRoWLm9wZW5vbHQuT251U3RhdGlzdGljcyIfgtPkkwIZIhQvdjEvR2V0T251U3RhdGlzdGljczoBKhJrChRHZXRHZW1Qb3J0U3RhdGlzdGljcxISLm9wZW5vbHQuT251UGFja2V0Ghoub3Blbm9sdC5HZW1Qb3J0U3RhdGlzdGljcyIjgtPkkwIdIhgvdjEvR2V0R2VtUG9ydFN0YXRpc3RpY3M6ASoScgoXQ3JlYXRlVHJhZmZpY1NjaGVkdWxlcnMSHy50ZWNoX3Byb2ZpbGUuVHJhZmZpY1NjaGVkdWxlcnMaDi5vcGVub2x0LkVtcHR5IiaC0+STAiAiGy92MS9DcmVhdGVUcmFmZmljU2NoZWR1bGVyczoBKhJyChdSZW1vdmVUcmFmZmljU2NoZWR1bGVycxIfLnRlY2hfcHJvZmlsZS5UcmFmZmljU2NoZWR1bGVycxoOLm9wZW5vbHQuRW1wdHkiJoLT5JMCICIbL3YxL1JlbW92ZVRyYWZmaWNTY2hlZHVsZXJzOgEqEmYKE0NyZWF0ZVRyYWZmaWNRdWV1ZXMSGy50ZWNoX3Byb2ZpbGUuVHJhZmZpY1F1ZXVlcxoOLm9wZW5vbHQuRW1wdHkiIoLT5JMCHCIXL3YxL0NyZWF0ZVRyYWZmaWNRdWV1ZXM6ASoSZgoTUmVtb3ZlVHJhZmZpY1F1ZXVlcxIbLnRlY2hfcHJvZmlsZS5UcmFmZmljUXVldWVzGg4ub3Blbm9sdC5FbXB0eSIigtPkkwIcIhcvdjEvUmVtb3ZlVHJhZmZpY1F1ZXVlczoBKhI7ChBFbmFibGVJbmRpY2F0aW9uEg4ub3Blbm9sdC5FbXB0eRoTLm9wZW5vbHQuSW5kaWNhdGlvbiIAMAESXQoVUGVyZm9ybUdyb3VwT3BlcmF0aW9uEg4ub3Blbm9sdC5Hcm91cBoOLm9wZW5vbHQuRW1wdHkiJILT5JMCHiIZL3YxL1BlcmZvcm1Hcm91cE9wZXJhdGlvbjoBKhJJCgtEZWxldGVHcm91cBIOLm9wZW5vbHQuR3JvdXAaDi5vcGVub2x0LkVtcHR5IhqC0+STAhQiDy92MS9EZWxldGVHcm91cDoBKhJXCgtHZXRFeHRWYWx1ZRITLm9wZW5vbHQuVmFsdWVQYXJhbRoXLmV4dGVuc2lvbi5SZXR1cm5WYWx1ZXMiGoLT5JMCFCIPL3YxL0dldEV4dFZhbHVlOgEqEl0KEU9udUl0dVBvbkFsYXJtU2V0EhYuY29uZmlnLk9udUl0dVBvbkFsYXJtGg4ub3Blbm9sdC5FbXB0eSIggtPkkwIaIhUvdjEvT251SXR1UG9uQWxhcm1TZXQ6ASoScAoZR2V0TG9naWNhbE9udURpc3RhbmNlWmVybxIMLm9wZW5vbHQuT251Ghsub3Blbm9sdC5PbnVMb2dpY2FsRGlzdGFuY2UiKILT5JMCIiIdL3YxL0dldExvZ2ljYWxPbnVEaXN0YW5jZVplcm86ASoSaAoVR2V0TG9naWNhbE9udURpc3RhbmNlEgwub3Blbm9sdC5PbnUaGy5vcGVub2x0Lk9udUxvZ2ljYWxEaXN0YW5jZSIkgtPkkwIeIhkvdjEvR2V0TG9naWNhbE9udURpc3RhbmNlOgEqElQKDUdldFBvblJ4UG93ZXISDC5vcGVub2x0Lk9udRoXLm9wZW5vbHQuUG9uUnhQb3dlckRhdGEiHILT5JMCFiIRL3YxL0dldFBvblJ4UG93ZXI6ASpCXQobb3JnLm9wZW5jb3JkLnZvbHRoYS5vcGVub2x0Qg1Wb2x0aGFPcGVuT0xUWi9naXRodWIu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LQoMCgQEMQIEEgSCBgQhCg8KBQQxAgQEEgaCBgSBBi4KDQoFBDECBAUSBIIGBAoKDQoFBDECBAESBIIGCxwKDQoFBDECBAMSBIIGHyAKCgoCBDISBIUGABAKCwoDBDIBEgSFBggNYgZwcm90bzMKlCIKIXZvbHRoYV9wcm90b3MvaW50ZXJfYWRhcHRlci5wcm90bxINaW50ZXJfYWRhcHRlchoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aGnZvbHRoYV9wcm90b3Mvdm9sdGhhLnByb3RvGiB2b2x0aGFfcHJvdG9zL3RlY2hfcHJvZmlsZS5wcm90bxobdm9sdGhhX3Byb3Rvcy9vcGVub2x0LnByb3RvGhp2b2x0aGFfcHJvdG9zL2RldmljZS5wcm90byL/AQoLT21jaU1lc3NhZ2USGAoHbWVzc2FnZRgBIAEoDFIHbWVzc2FnZRJCCg5jb25uZWN0X3N0YXR1cxgCIAEoDjIbLmNvbW1vbi5Db25uZWN0U3RhdHVzLlR5cGVzUg1jb25uZWN0U3RhdHVzEkAKDXByb3h5X2FkZHJlc3MYAyABKAsyGy5kZXZpY2UuRGV2aWNlLlByb3h5QWRkcmVzc1IMcHJveHlBZGRyZXNzEigKEHBhcmVudF9kZXZpY2VfaWQYBCABKAlSDnBhcmVudERldmljZUlkEiYKD2NoaWxkX2RldmljZV9pZBgFIAEoCVINY2hpbGREZXZpY2VJZCKCAgoMT21jaU1lc3NhZ2VzEhoKCG1lc3NhZ2VzGAEgAygMUghtZXNzYWdlcxJCCg5jb25uZWN0X3N0YXR1cxgCIAEoDjIbLmNvbW1vbi5Db25uZWN0U3RhdHVzLlR5cGVzUg1jb25uZWN0U3RhdHVzEkAKDXByb3h5X2FkZHJlc3MYAyABKAsyGy5kZXZpY2UuRGV2aWNlLlByb3h5QWRkcmVzc1IMcHJveHlBZGRyZXNzEigKEHBhcmVudF9kZXZpY2VfaWQYBCABKAlSDnBhcmVudERldmljZUlkEiYKD2NoaWxkX2RldmljZV9pZBgFIAEoCVINY2hpbGREZXZpY2VJZCKnAgoaVGVjaFByb2ZpbGVEb3dubG9hZE1lc3NhZ2USGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIVCgZ1bmlfaWQYAiABKA1SBXVuaUlkEigKEHRwX2luc3RhbmNlX3BhdGgYAyABKAlSDnRwSW5zdGFuY2VQYXRoEkQKC3RwX2luc3RhbmNlGAQgASgLMiEudGVjaF9wcm9maWxlLlRlY2hQcm9maWxlSW5zdGFuY2VIAFIKdHBJbnN0YW5jZRJRChBlcG9uX3RwX2luc3RhbmNlGAUgASgLMiUudGVjaF9wcm9maWxlLkVwb25UZWNoUHJvZmlsZUluc3RhbmNlSABSDmVwb25UcEluc3RhbmNlQhIKEHRlY2hfdHBfaW5zdGFuY2UilAEKFERlbGV0ZUdlbVBvcnRNZXNzYWdlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSFQoGdW5pX2lkGAIgASgNUgV1bmlJZBIoChB0cF9pbnN0YW5jZV9wYXRoGAMgASgJUg50cEluc3RhbmNlUGF0aBIeCgtnZW1fcG9ydF9pZBgEIAEoDVIJZ2VtUG9ydElkIo0BChJEZWxldGVUY29udE1lc3NhZ2USGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIVCgZ1bmlfaWQYAiABKA1SBXVuaUlkEigKEHRwX2luc3RhbmNlX3BhdGgYAyABKAlSDnRwSW5zdGFuY2VQYXRoEhkKCGFsbG9jX2lkGAQgASgNUgdhbGxvY0lkInIKFE9udUluZGljYXRpb25NZXNzYWdlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSPQoOb251X2luZGljYXRpb24YAiABKAsyFi5vcGVub2x0Lk9udUluZGljYXRpb25SDW9udUluZGljYXRpb24i6gEKIVRlY2hQcm9maWxlSW5zdGFuY2VSZXF1ZXN0TWVzc2FnZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEigKEHRwX2luc3RhbmNlX3BhdGgYAiABKAlSDnRwSW5zdGFuY2VQYXRoEigKEHBhcmVudF9kZXZpY2VfaWQYAyABKAlSDnBhcmVudERldmljZUlkEiYKD3BhcmVudF9wb25fcG9ydBgEIAEoDVINcGFyZW50UG9uUG9ydBIVCgZvbnVfaWQYBSABKA1SBW9udUlkEhUKBnVuaV9pZBgGIAEoDVIFdW5pSWRCWgohb3JnLm9wZW5jb3JkLnZvbHRoYS5p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dG9zL29sdF9pbnRlcl9hZGFwdGVyX3NlcnZpY2UucHJvdG8SGW9sdF9pbnRlcl9hZGFwdGVyX3NlcnZpY2UaGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aIXZvbHRoYV9wcm90b3MvaW50ZXJfYWRhcHRlci5wcm90bxoadm9sdGhhX3Byb3Rvcy9oZWFsdGgucHJvdG8y4gIKFk9sdEludGVyQWRhcHRlclNlcnZpY2USPwoPR2V0SGVhbHRoU3RhdHVzEhIuY29tbW9uLkNvbm5lY3Rpb24aFC5oZWFsdGguSGVhbHRoU3RhdHVzKAEwARJGChBQcm94eU9tY2lSZXF1ZXN0EhouaW50ZXJfYWRhcHRlci5PbWNpTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJIChFQcm94eU9tY2lSZXF1ZXN0cxIbLmludGVyX2FkYXB0ZXIuT21jaU1lc3NhZ2VzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EnUKFkdldFRlY2hQcm9maWxlSW5zdGFuY2USMC5pbnRlcl9hZGFwdGVyLlRlY2hQcm9maWxlSW5zdGFuY2VSZXF1ZXN0TWVzc2FnZRopLmludGVyX2FkYXB0ZXIuVGVjaFByb2ZpbGVEb3dubG9hZE1lc3NhZ2VCkAEKLW9yZy5vcGVuY29yZC52b2x0aGEub2x0X2ludGVyX2FkYXB0ZXJfc2VydmljZUIcVm9sdGhhT2x0SW50ZXJBZGFwdGVyU2VydmljZVpBZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL29sdF9pbnRlcl9hZGFwdGVyX3NlcnZpY2VKtgQKBhIEAAAWAQoICgEMEgMAABIKCAoBCBIDAgBYCgkKAggLEgMCAFgKCAoBCBIDAwBGCgkKAggBEgMDAEYKCAoBCBIDBAA9CgkKAggIEgMEAD0KCAoBAhIDBgAiCgkKAgMAEgMIACQKCQoCAwESAwkAJQoJCgIDAhIDCgArCgkKAgMDEgMLACQKCgoCBgASBA0AFgEKCgoDBgABEgMNCB4KpwEKBAYAAgASAxAEVxqZASBHZXRIZWFsdGhTdGF0dXMgaXMgdXNlZCBieSBhIE9sdEludGVyQWRhcHRlclNlcnZpY2UgY2xpZW50IHRvIGRldGVjdCBhIGNvbm5lY3Rpb24KIGxvc3Qgd2l0aCB0aGUgZ1JQQyBzZXJ2ZXIgaG9zdGluZyB0aGUgT2x0SW50ZXJBZGFwdGVyU2VydmljZSBzZXJ2aWNlCgoMCgUGAAIAARIDEAgXCgwKBQYAAgAFEgMQGB4KDAoFBgACAAISAxAfMAoMCgUGAAIABhIDEDtBCgwKBQYAAgADEgMQQlUKCwoEBgACARIDEwRUCgwKBQYAAgEBEgMTCBgKDAoFBgACAQISAxMZMgoMCgUGAAIBAxIDEz1SCgsKBAYAAgISAxQEVgoMCgUGAAICARIDFAgZCgwKBQYAAgICEgMUGjQKDAoFBgACAgMSAxQ/VAoMCgQGAAIDEgQVBIMBCgwKBQYAAgMBEgMVCB4KDAoFBgACAwISAxUfTgoNCgUGAAIDAxIEFVmBAWIGcHJvdG8zCuQLCi12b2x0aGFfcHJvdG9zL29udV9pbnRlcl9hZGFwdGVyX3NlcnZpY2UucHJvdG8SGW9udV9pbnRlcl9hZGFwdGVyX3NlcnZpY2UaGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aIXZvbHRoYV9wcm90b3MvaW50ZXJfYWRhcHRlci5wcm90bxoadm9sdGhhX3Byb3Rvcy9oZWFsdGgucHJvdG8y3wMKFk9udUludGVyQWRhcHRlclNlcnZpY2USPwoPR2V0SGVhbHRoU3RhdHVzEhIuY29tbW9uLkNvbm5lY3Rpb24aFC5oZWFsdGguSGVhbHRoU3RhdHVzKAEwARJMCg1PbnVJbmRpY2F0aW9uEiMuaW50ZXJfYWRhcHRlci5PbnVJbmRpY2F0aW9uTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJECg5PbWNpSW5kaWNhdGlvbhIaLmludGVyX2FkYXB0ZXIuT21jaU1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSWAoTRG93bmxvYWRUZWNoUHJvZmlsZRIpLmludGVyX2FkYXB0ZXIuVGVjaFByb2ZpbGVEb3dubG9hZE1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSTAoNRGVsZXRlR2VtUG9ydBIjLmludGVyX2FkYXB0ZXIuRGVsZXRlR2VtUG9ydE1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSSAoLRGVsZXRlVENvbnQSIS5pbnRlcl9hZGFwdGVyLkRlbGV0ZVRjb250TWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eUKQAQotb3JnLm9wZW5jb3JkLnZvbHRoYS5vbnVfaW50ZXJfYWRhcHRlcl9zZXJ2aWNlQhxWb2x0aGFPbnVJbnRlckFkYXB0ZXJTZXJ2aWNlWkFnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vb251X2ludGVyX2FkYXB0ZXJfc2VydmljZUqiBQoGEgQAABcBCggKAQwSAwAAEgoICgEIEgMCAFgKCQoCCAsSAwIAWAoICgEIEgMDAEYKCQoCCAESAwMARgoICgEIEgMEAD0KCQoCCAgSAwQAPQoICgECEgMGACIKCQoCAwASAwgAJAoJCgIDARIDCQAlCgkKAgMCEgMKACsKCQoCAwMSAwsAJAoKCgIGABIEDQAXAQoKCgMGAAESAw0IHgqnAQoEBgACABIDEARXGpkBIEdldEhlYWx0aFN0YXR1cyBpcyB1c2VkIGJ5IGEgT251SW50ZXJBZGFwdGVyU2VydmljZSBjbGllbnQgdG8gZGV0ZWN0IGEgY29ubmVjdGlvbgogbG9zdCB3aXRoIHRoZSBnUlBDIHNlcnZlciBob3N0aW5nIHRoZSBPbnVJbnRlckFkYXB0ZXJTZXJ2aWNlIHNlcnZpY2UKCgwKBQYAAgABEgMQCBcKDAoFBgACAAUSAxAYHgoMCgUGAAIAAhIDEB8wCgwKBQYAAgAGEgMQO0EKDAoFBgACAAMSAxBCVQoLCgQGAAIBEgMSBFoKDAoFBgACAQESAxIIFQoMCgUGAAIBAhIDEhY4CgwKBQYAAgEDEgMSQ1gKCwoEBgACAhIDEwRSCgwKBQYAAgIBEgMTCBYKDAoFBgACAgISAxMXMAoMCgUGAAICAxIDEztQCgsKBAYAAgMSAxQEZgoMCgUGAAIDARIDFAgbCgwKBQYAAgMCEgMUHEQKDAoFBgACAwMSAxRPZAoLCgQGAAIEEgMVBFoKDAoFBgACBAESAxUIFQoMCgUGAAIEAhIDFRY4CgwKBQYAAgQDEgMVQ1gKCwoEBgACBRIDFgRWCgwKBQYAAgUBEgMWCBMKDAoFBgACBQISAxYUNAoMCgUGAAIFAxIDFj9UYgZwcm90bzM=