CuEsChlnb29nbGUvcHJvdG9idWYvYW55LnByb3RvEg9nb29nbGUucHJvdG9idWYiNgoDQW55EhkKCHR5cGVfdXJsGAEgASgJUgd0eXBlVXJsEhQKBXZhbHVlGAIgASgMUgV2YWx1ZUJvChNjb20uZ29vZ2xlLnByb3RvYnVmQghBbnlQcm90b1ABWiVnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvYW55ogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSoErCgcSBR4AmgEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwA8CgkKAggLEgMjADwKCAoBCBIDJAAsCgkKAggBEgMkACwKCAoBCBIDJQApCgkKAggIEgMlACkKCAoBCBIDJgAiCgkKAggKEgMmACIKCAoBCBIDJwAhCgkKAggkEgMnACEK5BAKAgQAEgV5AJoBARrWECBgQW55YCBjb250YWlucyBhbiBhcmJpdHJhcnkgc2VyaWFsaXplZCBwcm90b2NvbCBidWZmZXIgbWVzc2FnZSBhbG9uZyB3aXRoIGEKIFVSTCB0aGF0IGRlc2NyaWJlcyB0aGUgdHlwZSBvZiB0aGUgc2VyaWFsaXplZCBtZXNzYWdlLgoKIFByb3RvYnVmIGxpYnJhcnkgcHJvdmlkZXMgc3VwcG9ydCB0byBwYWNrL3VucGFjayBBbnkgdmFsdWVzIGluIHRoZSBmb3JtCiBvZiB1dGlsaXR5IGZ1bmN0aW9ucyBvciBhZGRpdGlvbmFsIGdlbmVyYXRlZCBtZXRob2RzIG9mIHRoZSBBbnkgdHlwZS4KCiBFeGFtcGxlIDE6IFBhY2sgYW5kIHVucGFjayBhIG1lc3NhZ2UgaW4gQysrLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnk7CiAgICAgYW55LlBhY2tGcm9tKGZvbyk7CiAgICAgLi4uCiAgICAgaWYgKGFueS5VbnBhY2tUbygmZm9vKSkgewogICAgICAgLi4uCiAgICAgfQoKIEV4YW1wbGUgMjogUGFjayBhbmQgdW5wYWNrIGEgbWVzc2FnZSBpbiBKYXZhLgoKICAgICBGb28gZm9vID0gLi4uOwogICAgIEFueSBhbnkgPSBBbnkucGFjayhmb28pOwogICAgIC4uLgogICAgIGlmIChhbnkuaXMoRm9vLmNsYXNzKSkgewogICAgICAgZm9vID0gYW55LnVucGFjayhGb28uY2xhc3MpOwogICAgIH0KCiAgRXhhbXBsZSAzOiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIFB5dGhvbi4KCiAgICAgZm9vID0gRm9vKC4uLikKICAgICBhbnkgPSBBbnkoKQogICAgIGFueS5QYWNrKGZvbykKICAgICAuLi4KICAgICBpZiBhbnkuSXMoRm9vLkRFU0NSSVBUT1IpOgogICAgICAgYW55LlVucGFjayhmb28pCiAgICAgICAuLi4KCiAgRXhhbXBsZSA0OiBQYWNrIGFuZCB1bnBhY2sgYSBtZXNzYWdlIGluIEdvCgogICAgICBmb28gOj0gJnBiLkZvb3suLi59CiAgICAgIGFueSwgZXJyIDo9IHB0eXBlcy5NYXJzaGFsQW55KGZvbykKICAgICAgLi4uCiAgICAgIGZvbyA6PSAmcGIuRm9ve30KICAgICAgaWYgZXJyIDo9IHB0eXBlcy5Vbm1hcnNoYWxBbnkoYW55LCBmb28pOyBlcnIgIT0gbmlsIHsKICAgICAgICAuLi4KICAgICAgfQoKIFRoZSBwYWNrIG1ldGhvZHMgcHJvdmlkZWQgYnkgcHJvdG9idWYgbGlicmFyeSB3aWxsIGJ5IGRlZmF1bHQgdXNlCiAndHlwZS5nb29nbGVhcGlzLmNvbS9mdWxsLnR5cGUubmFtZScgYXMgdGhlIHR5cGUgVVJMIGFuZCB0aGUgdW5wYWNrCiBtZXRob2RzIG9ubHkgdXNlIHRoZSBmdWxseSBxdWFsaWZpZWQgdHlwZSBuYW1lIGFmdGVyIHRoZSBsYXN0ICcvJwogaW4gdGhlIHR5cGUgVVJMLCBmb3IgZXhhbXBsZSAiZm9vLmJhci5jb20veC95LnoiIHdpbGwgeWllbGQgdHlwZQogbmFtZSAieS56Ii4KCgogSlNPTgogPT09PQogVGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2YgYW4gYEFueWAgdmFsdWUgdXNlcyB0aGUgcmVndWxhcgogcmVwcmVzZW50YXRpb24gb2YgdGhlIGRlc2VyaWFsaXplZCwgZW1iZWRkZWQgbWVzc2FnZSwgd2l0aCBhbgogYWRkaXRpb25hbCBmaWVsZCBgQHR5cGVgIHdoaWNoIGNvbnRhaW5zIHRoZSB0eXBlIFVSTC4gRXhhbXBsZToKCiAgICAgcGFja2FnZSBnb29nbGUucHJvZmlsZTsKICAgICBtZXNzYWdlIFBlcnNvbiB7CiAgICAgICBzdHJpbmcgZmlyc3RfbmFtZSA9IDE7CiAgICAgICBzdHJpbmcgbGFzdF9uYW1lID0gMjsKICAgICB9CgogICAgIHsKICAgICAgICJAdHlwZSI6ICJ0eXBlLmdvb2dsZWFwaXMuY29tL2dvb2dsZS5wcm9maWxlLlBlcnNvbiIsCiAgICAgICAiZmlyc3ROYW1lIjogPHN0cmluZz4sCiAgICAgICAibGFzdE5hbWUiOiA8c3RyaW5nPgogICAgIH0KCiBJZiB0aGUgZW1iZWRkZWQgbWVzc2FnZSB0eXBlIGlzIHdlbGwta25vd24gYW5kIGhhcyBhIGN1c3RvbSBKU09OCiByZXByZXNlbnRhdGlvbiwgdGhhdCByZXByZXNlbnRhdGlvbiB3aWxsIGJlIGVtYmVkZGVkIGFkZGluZyBhIGZpZWxkCiBgdmFsdWVgIHdoaWNoIGhvbGRzIHRoZSBjdXN0b20gSlNPTiBpbiBhZGRpdGlvbiB0byB0aGUgYEB0eXBlYAogZmllbGQuIEV4YW1wbGUgKGZvciBtZXNzYWdlIFtnb29nbGUucHJvdG9idWYuRHVyYXRpb25dW10pOgoKICAgICB7CiAgICAgICAiQHR5cGUiOiAidHlwZS5nb29nbGVhcGlzLmNvbS9nb29nbGUucHJvdG9idWYuRHVyYXRpb24iLAogICAgICAgInZhbHVlIjogIjEuMjEycyIKICAgICB9CgoKCgoDBAABEgN5CAsK1woKBAQAAgASBJYBAhYayAogQSBVUkwvcmVzb3VyY2UgbmFtZSB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIHR5cGUgb2YgdGhlIHNlcmlhbGl6ZWQKIHByb3RvY29sIGJ1ZmZlciBtZXNzYWdlLiBUaGlzIHN0cmluZyBtdXN0IGNvbnRhaW4gYXQgbGVhc3QKIG9uZSAiLyIgY2hhcmFjdGVyLiBUaGUgbGFzdCBzZWdtZW50IG9mIHRoZSBVUkwncyBwYXRoIG11c3QgcmVwcmVzZW50CiB0aGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgb2YgdGhlIHR5cGUgKGFzIGluCiBgcGF0aC9nb29nbGUucHJvdG9idWYuRHVyYXRpb25gKS4gVGhlIG5hbWUgc2hvdWxkIGJlIGluIGEgY2Fub25pY2FsIGZvcm0KIChlLmcuLCBsZWFkaW5nICIuIiBpcyBub3QgYWNjZXB0ZWQpLgoKIEluIHByYWN0aWNlLCB0ZWFtcyB1c3VhbGx5IHByZWNvbXBpbGUgaW50byB0aGUgYmluYXJ5IGFsbCB0eXBlcyB0aGF0IHRoZXkKIGV4cGVjdCBpdCB0byB1c2UgaW4gdGhlIGNvbnRleHQgb2YgQW55LiBIb3dldmVyLCBmb3IgVVJMcyB3aGljaCB1c2UgdGhlCiBzY2hlbWUgYGh0dHBgLCBgaHR0cHNgLCBvciBubyBzY2hlbWUsIG9uZSBjYW4gb3B0aW9uYWxseSBzZXQgdXAgYSB0eXBlCiBzZXJ2ZXIgdGhhdCBtYXBzIHR5cGUgVVJMcyB0byBtZXNzYWdlIGRlZmluaXRpb25zIGFzIGZvbGxvd3M6CgogKiBJZiBubyBzY2hlbWUgaXMgcHJvdmlkZWQsIGBodHRwc2AgaXMgYXNzdW1lZC4KICogQW4gSFRUUCBHRVQgb24gdGhlIFVSTCBtdXN0IHlpZWxkIGEgW2dvb2dsZS5wcm90b2J1Zi5UeXBlXVtdCiAgIHZhbHVlIGluIGJpbmFyeSBmb3JtYXQsIG9yIHByb2R1Y2UgYW4gZXJyb3IuCiAqIEFwcGxpY2F0aW9ucyBhcmUgYWxsb3dlZCB0byBjYWNoZSBsb29rdXAgcmVzdWx0cyBiYXNlZCBvbiB0aGUKICAgVVJMLCBvciBoYXZlIHRoZW0gcHJlY29tcGlsZWQgaW50byBhIGJpbmFyeSB0byBhdm9pZCBhbnkKICAgbG9va3VwLiBUaGVyZWZvcmUsIGJpbmFyeSBjb21wYXRpYmlsaXR5IG5lZWRzIHRvIGJlIHByZXNlcnZlZAogICBvbiBjaGFuZ2VzIHRvIHR5cGVzLiAoVXNlIHZlcnNpb25lZCB0eXBlIG5hbWVzIHRvIG1hbmFnZQogICBicmVha2luZyBjaGFuZ2VzLikKCiBOb3RlOiB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGN1cnJlbnRseSBhdmFpbGFibGUgaW4gdGhlIG9mZmljaWFsCiBwcm90b2J1ZiByZWxlYXNlLCBhbmQgaXQgaXMgbm90IHVzZWQgZm9yIHR5cGUgVVJMcyBiZWdpbm5pbmcgd2l0aAogdHlwZS5nb29nbGVhcGlzLmNvbS4KCiBTY2hlbWVzIG90aGVyIHRoYW4gYGh0dHBgLCBgaHR0cHNgIChvciB0aGUgZW1wdHkgc2NoZW1lKSBtaWdodCBiZQogdXNlZCB3aXRoIGltcGxlbWVudGF0aW9uIHNwZWNpZmljIHNlbWFudGljcy4KCgoOCgUEAAIABBIFlgECeQ0KDQoFBAACAAUSBJYBAggKDQoFBAACAAESBJYBCREKDQoFBAACAAMSBJYBFBUKVwoEBAACARIEmQECEhpJIE11c3QgYmUgYSB2YWxpZCBzZXJpYWxpemVkIHByb3RvY29sIGJ1ZmZlciBvZiB0aGUgYWJvdmUgc3BlY2lmaWVkIHR5cGUuCgoPCgUEAAIBBBIGmQEClgEWCg0KBQQAAgEFEgSZAQIHCg0KBQQAAgEBEgSZAQgNCg0KBQQAAgEDEgSZARARYgZwcm90bzMKxBEKG3ZvbHRoYV9wcm90b3MvYWRhcHRlci5wcm90bxIHYWRhcHRlchoZZ29vZ2xlL3Byb3RvYnVmL2FueS5wcm90byJSCg1BZGFwdGVyQ29uZmlnEkEKEWFkZGl0aW9uYWxfY29uZmlnGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIQYWRkaXRpb25hbENvbmZpZyKjAwoHQWRhcHRlchIOCgJpZBgBIAEoCVICaWQSFgoGdmVuZG9yGAIgASgJUgZ2ZW5kb3ISGAoHdmVyc2lvbhgDIAEoCVIHdmVyc2lvbhIuCgZjb25maWcYECABKAsyFi5hZGFwdGVyLkFkYXB0ZXJDb25maWdSBmNvbmZpZxJLChZhZGRpdGlvbmFsX2Rlc2NyaXB0aW9uGEAgASgLMhQuZ29vZ2xlLnByb3RvYnVmLkFueVIVYWRkaXRpb25hbERlc2NyaXB0aW9uEiwKEmxvZ2ljYWxfZGV2aWNlX2lkcxgEIAMoCVIQbG9naWNhbERldmljZUlkcxItChJsYXN0X2NvbW11bmljYXRpb24YBSABKANSEWxhc3RDb21tdW5pY2F0aW9uEiYKDmN1cnJlbnRSZXBsaWNhGAYgASgFUg5jdXJyZW50UmVwbGljYRIkCg10b3RhbFJlcGxpY2FzGAcgASgFUg10b3RhbFJlcGxpY2FzEhoKCGVuZHBvaW50GAggASgJUghlbmRwb2ludBISCgR0eXBlGAkgASgJ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dWYvcHR5cGVzL2VtcHR5+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSv4QCgYSBB4AMxAKzAwKAQwSAx4AEjLBDCBQcm90b2NvbCBCdWZmZXJzIC0gR29vZ2xlJ3MgZGF0YSBpbnRlcmNoYW5nZSBmb3JtYXQKIENvcHlyaWdodCAyMDA4IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vcHJvdG9jb2wtYnVmZmVycy8KCiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKIG1ldDoKCiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQogZGlzdHJpYnV0aW9uLgogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KCggKAQISAyAAGAoICgEIEgMiADsKCQoCCCUSAyIAOwoICgEIEgMjAD4KCQoCCAsSAyMAPgoICgEIEgMkACwKCQoCCAESAyQALAoICgEIEgMlACsKCQoCCAgSAyUAKwoICgEIEgMmACIKCQoCCAoSAyYAIgoICgEIEgMnACEKCQoCCCQSAycAIQoICgEIEgMoAB8KCQoCCB8SAygAHwr7AgoCBAASAzMAEBrvAiBBIGdlbmVyaWMgZW1wdHkgbWVzc2FnZSB0aGF0IHlvdSBjYW4gcmUtdXNlIHRvIGF2b2lkIGRlZmluaW5nIGR1cGxpY2F0ZWQKIGVtcHR5IG1lc3NhZ2VzIGluIHlvdXIgQVBJcy4gQSB0eXBpY2FsIGV4YW1wbGUgaXMgdG8gdXNlIGl0IGFzIHRoZSByZXF1ZXN0CiBvciB0aGUgcmVzcG9uc2UgdHlwZSBvZiBhbiBBUEkgbWV0aG9kLiBGb3IgaW5zdGFuY2U6CgogICAgIHNlcnZpY2UgRm9vIHsKICAgICAgIHJwYyBCYXIoZ29vZ2xlLnByb3RvYnVmLkVtcHR5KSByZXR1cm5zIChnb29nbGUucHJvdG9idWYuRW1wdHkpOwogICAgIH0KCiBUaGUgSlNPTiByZXByZXNlbnRhdGlvbiBmb3IgYEVtcHR5YCBpcyBlbXB0eSBKU09OIG9iamVjdCBge31gLgoKCgoDBAABEgMzCA1iBnByb3RvMwqlWQoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8SBmNvbW1vbiIXCgNLZXkSEAoDa2V5GAEgASgJUgNrZXkiFAoCSUQSDgoCaWQYASABKAlSAmlkIicKA0lEcxIgCgVpdGVtcxgBIAMoCzIKLmNvbW1vbi5JRFIFaXRlbXMiegoKQ29ubmVjdGlvbhIaCghlbmRwb2ludBgBIAEoCVIIZW5kcG9pbnQSIAoLY29udGV4dEluZm8YAiABKAlSC2NvbnRleHRJbmZvEi4KE2tlZXBfYWxpdmVfaW50ZXJ2YWwYAyABKANSEWtlZXBBbGl2ZUludGVydmFsImgKCkFkbWluU3RhdGUiWgoFVHlwZXMSCwoHVU5LTk9XThAAEhIKDlBSRVBST1ZJU0lPTkVEEAESCwoHRU5BQkxFRBACEgwKCERJU0FCTEVEEAMSFQoRRE9XTkxPQURJTkdfSU1BR0UQBCKfAQoKT3BlclN0YXR1cyKQAQoFVHlwZXMSCwoHVU5LTk9XThAAEg4KCkRJU0NPVkVSRUQQARIOCgpBQ1RJVkFUSU5HEAISCwoHVEVTVElORxADEgoKBkFDVElWRRAEEgoKBkZBSUxFRBAFEg8KC1JFQ09OQ0lMSU5HEAYSFgoSUkVDT05DSUxJTkdfRkFJTEVEEAcSDAoIUkVCT09URUQQCCJFCg1Db25uZWN0U3RhdHVzIjQKBVR5cGVzEgsKB1VOS05PV04QABIPCgtVTlJFQUNIQUJMRRABEg0KCVJFQUNIQUJMRRACIvIBCg1PcGVyYXRpb25SZXNwEj0KBGNvZGUYASABKA4yKS5jb21tb24uT3BlcmF0aW9uUmVzcC5PcGVyYXRpb25SZXR1cm5Db2RlUgRjb2RlEicKD2FkZGl0aW9uYWxfaW5mbxgCIAEoCVIOYWRkaXRpb25hbEluZm8ieQoTT3BlcmF0aW9uUmV0dXJuQ29kZRIVChFPUEVSQVRJT05fU1VDQ0VTUxAAEhUKEU9QRVJBVElPTl9GQUlMVVJFEAESGQoVT1BFUkFUSU9OX1VOU1VQUE9SVEVEEAISGQoVT1BFUkFUSU9OX0lOX1BST0dSRVNTEAMimxMKDlBvcnRTdGF0aXN0aWNzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIZCghyeF9ieXRlcxgCIAEoBlIHcnhCeXRlcxIdCgpyeF9wYWNrZXRzGAMgASgGUglyeFBhY2tldHMSKAoQcnhfdWNhc3RfcGFja2V0cxgEIAEoBlIOcnhVY2FzdFBhY2tldHMSKAoQcnhfbWNhc3RfcGFja2V0cxgFIAEoBlIOcnhNY2FzdFBhY2tldHMSKAoQcnhfYmNhc3RfcGFja2V0cxgGIAEoBlIOcnhCY2FzdFBhY2tldHMSKAoQcnhfZXJyb3JfcGFja2V0cxgHIAEoBlIOcnhFcnJvclBhY2tldHMSGwoJcnhfZnJhbWVzGBEgASgGUghyeEZyYW1lcxIgCgxyeF9mcmFtZXNfNjQYEiABKAZSCnJ4RnJhbWVzNjQSJwoQcnhfZnJhbWVzXzY1XzEyNxgTIAEoBlINcnhGcmFtZXM2NTEyNxIpChFyeF9mcmFtZXNfMTI4XzI1NRgUIAEoBlIOcnhGcmFtZXMxMjgyNTUSKQoRcnhfZnJhbWVzXzI1Nl81MTEYFSABKAZSDnJ4RnJhbWVzMjU2NTExEisKEnJ4X2ZyYW1lc181MTJfMTAyMxgWIAEoBlIPcnhGcmFtZXM1MTIxMDIzEi0KE3J4X2ZyYW1lc18xMDI0XzE1MTgYFyABKAZSEHJ4RnJhbWVzMTAyNDE1MTgSLQoTcnhfZnJhbWVzXzE1MTlfMjA0NxgYIAEoBlIQcnhGcmFtZXMxNTE5MjA0NxItChNyeF9mcmFtZXNfMjA0OF80MDk1GBkgASgGUhByeEZyYW1lczIwNDg0MDk1Ei0KE3J4X2ZyYW1lc180MDk2XzkyMTYYGiABKAZSEHJ4RnJhbWVzNDA5NjkyMTYSLwoUcnhfZnJhbWVzXzkyMTdfMTYzODMYGyABKAZSEXJ4RnJhbWVzOTIxNzE2MzgzEiIKDXJ4X2NyY19lcnJvcnMYDiABKAZSC3J4Q3JjRXJyb3JzEi4KEnJ4VW5kZXJzaXplUGFja2V0cxgnIAEoBlIScnhVbmRlcnNpemVQYWNrZXRzEiwKEXJ4T3ZlcnNpemVQYWNrZXRzGCggASgGUhFyeE92ZXJzaXplUGFja2V0cxIUCgVyeEdlbRgrIAEoBlIFcnhHZW0SIgoMcnhHZW1Ecm9wcGVkGCwgASgGUgxyeEdlbURyb3BwZWQSHAoJcnhHZW1JZGxlGC0gASgGUglyeEdlbUlkbGUSJgoOcnhHZW1Db3JyZWN0ZWQYLiABKAZSDnJ4R2VtQ29ycmVjdGVkEiIKDHJ4R2VtSWxsZWdhbBgvIAEoBlIMcnhHZW1JbGxlZ2FsEigKD3J4RnJhZ21lbnRFcnJvchgwIAEoBlIPcnhGcmFnbWVudEVycm9yEioKEHJ4UGFja2V0c0Ryb3BwZWQYMSABKAZSEHJ4UGFja2V0c0Ryb3BwZWQSOAoXcnhDcHVPbWNpUGFja2V0c0Ryb3BwZWQYMiABKAZSF3J4Q3B1T21jaVBhY2tldHNEcm9wcGVkEhQKBXJ4Q3B1GDMgASgGUgVyeENwdRIWCgZyeE9tY2kYNCABKAZSBnJ4T21jaRI0ChVyeE9tY2lQYWNrZXRzQ3JjRXJyb3IYNSABKAZSFXJ4T21jaVBhY2tldHNDcmNFcnJvchIsChFyeEZjc0Vycm9yUGFja2V0cxg+IAEoBlIRcnhGY3NFcnJvclBhY2tldHMSGQoIdHhfYnl0ZXMYCCABKAZSB3R4Qnl0ZXMSHQoKdHhfcGFja2V0cxgJIAEoBlIJdHhQYWNrZXRzEigKEHR4X3VjYXN0X3BhY2tldHMYCiABKAZSDnR4VWNhc3RQYWNrZXRzEigKEHR4X21jYXN0X3BhY2tldHMYCyABKAZSDnR4TWNhc3RQYWNrZXRzEigKEHR4X2JjYXN0X3BhY2tldHMYDCABKAZSDnR4QmNhc3RQYWNrZXRzEigKEHR4X2Vycm9yX3BhY2tldHMYDSABKAZSDnR4RXJyb3JQYWNrZXRzEhsKCXR4X2ZyYW1lcxgcIAEoBlIIdHhGcmFtZXMSIAoMdHhfZnJhbWVzXzY0GB0gASgGUgp0eEZyYW1lczY0EicKEHR4X2ZyYW1lc182NV8xMjcYHiABKAZSDXR4RnJhbWVzNjUxMjcSKQoRdHhfZnJhbWVzXzEyOF8yNTUYHyABKAZSDnR4RnJhbWVzMTI4MjU1EikKEXR4X2ZyYW1lc18yNTZfNTExGCAgASgGUg50eEZyYW1lczI1NjUxMRIrChJ0eF9mcmFtZXNfNTEyXzEwMjMYISABKAZSD3R4RnJhbWVzNTEyMTAyMxItChN0eF9mcmFtZXNfMTAyNF8xNTE4GCIgASgGUhB0eEZyYW1lczEwMjQxNTE4Ei0KE3R4X2ZyYW1lc18xNTE5XzIwNDcYIyABKAZSEHR4RnJhbWVzMTUxOTIwNDcSLQoTdHhfZnJhbWVzXzIwNDhfNDA5NRgkIAEoBlIQdHhGcmFtZXMyMDQ4NDA5NRItChN0eF9mcmFtZXNfNDA5Nl85MjE2GCUgASgGUhB0eEZyYW1lczQwOTY5MjE2Ei8KFHR4X2ZyYW1lc185MjE3XzE2MzgzGCYgASgGUhF0eEZyYW1lczkyMTcxNjM4MxIuChJ0eFVuZGVyc2l6ZVBhY2tldHMYKSABKAZSEnR4VW5kZXJzaXplUGFja2V0cxIsChF0eE92ZXJzaXplUGFja2V0cxgqIAEoBlIRdHhPdmVyc2l6ZVBhY2tldHMSFAoFdHhHZW0YNiABKAZSBXR4R2VtEhQKBXR4Q3B1GDcgASgGUgV0eENwdRIWCgZ0eE9tY2kYOCABKAZSBnR4T21jaRI2ChZ0eERyb3BwZWRJbGxlZ2FsTGVuZ3RoGDkgASgGUhZ0eERyb3BwZWRJbGxlZ2FsTGVuZ3RoEiwKEXR4RHJvcHBlZFRwaWRNaXNzGDogASgGUhF0eERyb3BwZWRUcGlkTWlzcxIqChB0eERyb3BwZWRWaWRNaXNzGDsgASgGUhB0eERyb3Bw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BBIEfAR7GAoMCgUECAIABRIDfAQLCgwKBQQIAgABEgN8DBMKDAoFBAgCAAMSA3wWFwoLCgQECAIBEgN9BBkKDQoFBAgCAQQSBH0EfBgKDAoFBAgCAQUSA30ECwoMCgUECAIBARIDfQwUCgwKBQQIAgEDEgN9FxgKCwoEBAgCAhIDfgQbCg0KBQQIAgIEEgR+BH0ZCgwKBQQIAgIFEgN+BAsKDAoFBAgCAgESA34MFgoMCgUECAICAxIDfhkaCgsKBAQIAgMSA38EIQoNCgUECAIDBBIEfwR+GwoMCgUECAIDBRIDfwQLCgwKBQQIAgMBEgN/DBwKDAoFBAgCAwMSA38fIAoMCgQECAIEEgSAAQQhCg4KBQQIAgQEEgWAAQR/IQoNCgUECAIEBRIEgAEECwoNCgUECAIEARIEgAEMHAoNCgUECAIEAxIEgAEfIAoMCgQECAIFEgSBAQQhCg8KBQQIAgUEEgaBAQSAASEKDQoFBAgCBQUSBIEBBAsKDQoFBAgCBQESBIEBDBwKDQoFBAgCBQMSBIEBHyAKDAoEBAgCBhIEggEEIQoPCgUECAIGBBIGggEEgQEhCg0KBQQIAgYFEgSCAQQLCg0KBQQIAgYBEgSCAQwcCg0KBQQIAgYDEgSCAR8gCgwKBAQIAgcSBIMBBBsKDwoFBAgCBwQSBoMBBIIBIQoNCgUECAIHBRIEgwEECwoNCgUECAIHARIEgwEMFQoNCgUECAIHAxIEgwEYGgoMCgQECAIIEgSEAQQeCg8KBQQIAggEEgaEAQSDARsKDQoFBAgCCAUSBIQBBAsKDQoFBAgCCAESBIQBDBgKDQoFBAgCCAMSBIQBGx0KDAoEBAgCCRIEhQEEIgoPCgUECAIJBBIGhQEEhAEeCg0KBQQIAgkFEgSFAQQLCg0KBQQIAgkBEgSFAQwcCg0KBQQIAgkDEgSFAR8hCgwKBAQIAgoSBIYBBCMKDwoFBAgCCgQSBoYBBIUBIgoNCgUECAIKBRIEhgEECwoNCgUECAIKARIEhgEMHQoNCgUECAIKAxIEhgEgIgoMCgQECAILEgSHAQQjCg8KBQQIAgsEEgaHAQSGASMKDQoFBAgCCwUSBIcBBAsKDQoFBAgCCwESBIcBDB0KDQoFBAgCCwMSBIcBICIKDAoEBAgCDBIEiAEEJAoPCgUECAIMBBIGiAEEhwEjCg0K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DQoFBAgCOwMSBLkBGRsKDAoEBAgCPBIEugEEGwoPCgUECAI8BBIGugEEuQEcCg0KBQQIAjwFEgS6AQQLCg0KBQQIAjwBEgS6AQwVCg0KBQQIAjwDEgS6ARgaCgwKBAQIAj0SBLsBBBsKDwoFBAgCPQQSBrsBBLoBGwoNCgUECAI9BRIEuwEECwoNCgUECAI9ARIEuwEMFQoNCgUECAI9AxIEuwEYGmIGcHJvdG8zCsZ5ChVnb29nbGUvYXBpL2h0dHAucHJvdG8SCmdvb2dsZS5hcGkieQoESHR0cBIqCgVydWxlcxgBIAMoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGVSBXJ1bGVzEkUKH2Z1bGx5X2RlY29kZV9yZXNlcnZlZF9leHBhbnNpb24YAiABKAhSHGZ1bGx5RGVjb2RlUmVzZXJ2ZWRFeHBhbnNpb24i2gIKCEh0dHBSdWxlEhoKCHNlbGVjdG9yGAEgASgJUghzZWxlY3RvchISCgNnZXQYAiABKAlIAFIDZ2V0EhIKA3B1dBgDIAEoCUgAUgNwdXQSFAoEcG9zdBgEIAEoCUgAUgRwb3N0EhgKBmRlbGV0ZRgFIAEoCUgAUgZkZWxldGUSFgoFcGF0Y2gYBiABKAlIAFIFcGF0Y2gSNwoGY3VzdG9tGAggASgLMh0uZ29vZ2xlLmFwaS5DdXN0b21IdHRwUGF0dGVybkgAUgZjdXN0b20SEgoEYm9keRgHIAEoCVIEYm9keRIjCg1yZXNwb25zZV9ib2R5GAwgASgJUgxyZXNwb25zZUJvZHkSRQoTYWRkaXRpb25hbF9iaW5kaW5ncxgLIAMoCzIULmdvb2dsZS5hcGkuSHR0cFJ1bGVSEmFkZGl0aW9uYWxCaW5kaW5nc0IJCgdwYXR0ZXJuIjsKEUN1c3RvbUh0dHBQYXR0ZXJuEhIKBGtpbmQYASABKAlSBGtpbmQSEgoEcGF0aBgCIAEoCVIEcGF0aEJqCg5jb20uZ29vZ2xlLmFwaUIJSHR0cFByb3RvUAFaQWdvb2dsZS5nb2xhbmcub3JnL2dlbnByb3RvL2dvb2dsZWFwaXMvYXBpL2Fubm90YXRpb25zO2Fubm90YXRpb25z+AEBogIER0FQSUqXdAoHEgUPAPsCAQq+BAoBDBIDDwASMrMEIENvcHlyaWdodCAyMDE4IEdvb2dsZSBMTEMuCgogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgoKCAoBAhIDEQATCggKAQgSAxMAHwoJCgIIHxIDEwAfCggKAQgSAxQAWAoJCgIICxIDFABYCggKAQgSAxUAIgoJCgIIChIDFQAiCggKAQgSAxYAKgoJCgIICBIDFgAqCggKAQgSAxcAJwoJCgIIARIDFwAnCggKAQgSAxgAIgoJCgIIJBIDGAAiCs0BCgIEABIEHQAqARrAASBEZWZpbmVzIHRoZSBIVFRQIGNvbmZpZ3VyYXRpb24gZm9yIGFuIEFQSSBzZXJ2aWNlLiBJdCBjb250YWlucyBhIGxpc3Qgb2YKIFtIdHRwUnVsZV1bZ29vZ2xlLmFwaS5IdHRwUnVsZV0sIGVhY2ggc3BlY2lmeWluZyB0aGUgbWFwcGluZyBvZiBhbiBSUEMgbWV0aG9kCiB0byBvbmUgb3IgbW9yZSBIVFRQIFJFU1QgQVBJIG1ldGhvZHMuCgoKCgMEAAESAx0IDAqiAQoEBAACABIDIQIeGpQBIEEgbGlzdCBvZiBIVFRQIGNvbmZpZ3VyYXRpb24gcnVsZXMgdGhhdCBhcHBseSB0byBpbmRpdmlkdWFsIEFQSSBtZXRob2RzLgoKICoqTk9URToqKiBBbGwgc2VydmljZSBjb25maWd1cmF0aW9uIHJ1bGVzIGZvbGxvdyAibGFzdCBvbmUgd2lucyIgb3JkZXIuCgoMCgUEAAIABBIDIQIKCgwKBQQAAgAGEgMhCxMKDAoFBAACAAESAyEUGQoMCgUEAAIAAxIDIRwdCpMCCgQEAAIBEgMpAisahQIgV2hlbiBzZXQgdG8gdHJ1ZSwgVVJMIHBhdGggcGFybWV0ZXJzIHdpbGwgYmUgZnVsbHkgVVJJLWRlY29kZWQgZXhjZXB0IGluCiBjYXNlcyBvZiBzaW5nbGUgc2VnbWVudCBtYXRjaGVzIGluIHJlc2VydmVkIGV4cGFuc2lvbiwgd2hlcmUgIiUyRiIgd2lsbCBiZQogbGVmdCBlbmNvZGVkLgoKIFRoZSBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIG5vdCBkZWNvZGUgUkZDIDY1NzAgcmVzZXJ2ZWQgY2hhcmFjdGVycyBpbiBtdWx0aQogc2VnbWVudCBtYXRjaGVzLgoKDQoFBAACAQQSBCkCIR4KDAoFBAACAQUSAykCBgoMCgUEAAIBARIDKQcmCgwKBQQAAgEDEgMpKSoKu1MKAgQBEga8AgDyAgEarFMgIyBnUlBDIFRyYW5zY29kaW5nCgogZ1JQQyBUcmFuc2NvZGluZyBpcyBhIGZlYXR1cmUgZm9yIG1hcHBpbmcgYmV0d2VlbiBhIGdSUEMgbWV0aG9kIGFuZCBvbmUgb3IKIG1vcmUgSFRUUCBSRVNUIGVuZHBvaW50cy4gSXQgYWxsb3dzIGRldmVsb3BlcnMgdG8gYnVpbGQgYSBzaW5nbGUgQVBJIHNlcnZpY2UKIHRoYXQgc3VwcG9ydHMgYm90aCBnUlBDIEFQSXMgYW5kIFJFU1QgQVBJcy4gTWFueSBzeXN0ZW1zLCBpbmNsdWRpbmcgW0dvb2dsZQogQVBJc10oaHR0cHM6Ly9naXRodWIuY29tL2dvb2dsZWFwaXMvZ29vZ2xlYXBpcyksCiBbQ2xvdWQgRW5kcG9pbnRzXShodHRwczovL2Nsb3VkLmdvb2dsZS5jb20vZW5kcG9pbnRzKSwgW2dSUEMKIEdhdGV3YXldKGh0dHBzOi8vZ2l0aHViLmNvbS9ncnBjLWVjb3N5c3RlbS9ncnBjLWdhdGV3YXkpLAogYW5kIFtFbnZveV0oaHR0cHM6Ly9naXRodWIuY29tL2Vudm95cHJveHkvZW52b3kpIHByb3h5IHN1cHBvcnQgdGhpcyBmZWF0dXJlCiBhbmQgdXNlIGl0IGZvciBsYXJnZSBzY2FsZSBwcm9kdWN0aW9uIHNlcnZpY2VzLgoKIGBIdHRwUnVsZWAgZGVmaW5lcyB0aGUgc2NoZW1hIG9mIHRoZSBnUlBDL1JFU1QgbWFwcGluZy4gVGhlIG1hcHBpbmcgc3BlY2lmaWVzCiBob3cgZGlmZmVyZW50IHBvcnRpb25zIG9mIHRoZSBnUlBDIHJlcXVlc3QgbWVzc2FnZSBhcmUgbWFwcGVkIHRvIHRoZSBVUkwKIHBhdGgsIFVSTCBxdWVyeSBwYXJhbWV0ZXJzLCBhbmQgSFRUUCByZXF1ZXN0IGJvZHkuIEl0IGFsc28gY29udHJvbHMgaG93IHRoZQogZ1JQQyByZXNwb25zZSBtZXNzYWdlIGlzIG1hcHBlZCB0byB0aGUgSFRUUCByZXNwb25zZSBib2R5LiBgSHR0cFJ1bGVgIGlzCiB0eXBpY2FsbHkgc3BlY2lmaWVkIGFzIGFuIGBnb29nbGUuYXBpLmh0dHBgIGFubm90YXRpb24gb24gdGhlIGdSUEMgbWV0aG9kLgoKIEVhY2ggbWFwcGluZyBzcGVjaWZpZXMgYSBVUkwgcGF0aCB0ZW1wbGF0ZSBhbmQgYW4gSFRUUCBtZXRob2QuIFRoZSBwYXRoCiB0ZW1wbGF0ZSBtYXkgcmVmZXIgdG8gb25lIG9yIG1vcmUgZmllbGRzIGluIHRoZSBnUlBDIHJlcXVlc3QgbWVzc2FnZSwgYXMgbG9uZwogYXMgZWFjaCBmaWVsZCBpcyBhIG5vbi1yZXBlYXRlZCBmaWVsZCB3aXRoIGEgcHJpbWl0aXZlIChub24tbWVzc2FnZSkgdHlwZS4KIFRoZSBwYXRoIHRlbXBsYXRlIGNvbnRyb2xzIGhvdyBmaWVsZHMgb2YgdGhlIHJlcXVlc3QgbWVzc2FnZSBhcmUgbWFwcGVkIHRvCiB0aGUgVVJMIHBhdGguCgogRXhhbXBsZToKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIEdldE1lc3NhZ2UoR2V0TWVzc2FnZVJlcXVlc3QpIHJldHVybnMgKE1lc3NhZ2UpIHsKICAgICAgICAgb3B0aW9uIChnb29nbGUuYXBpLmh0dHApID0gewogICAgICAgICAgICAgZ2V0OiAiL3YxL3tuYW1lPW1lc3NhZ2VzLyp9IgogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIEdldE1lc3NhZ2VSZXF1ZXN0IHsKICAgICAgIHN0cmluZyBuYW1lID0gMTsgLy8gTWFwcGVkIHRvIFVSTCBwYXRoLgogICAgIH0KICAgICBtZXNzYWdlIE1lc3NhZ2UgewogICAgICAgc3RyaW5nIHRleHQgPSAxOyAvLyBUaGUgcmVzb3VyY2UgY29udGVudC4KICAgICB9CgogVGhpcyBlbmFibGVzIGFuIEhUVFAgUkVTVCB0byBnUlBDIG1hcHBpbmcgYXMgYmVsb3c6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgR0VUIC92MS9tZXNzYWdlcy8xMjM0NTZgICB8IGBHZXRNZXNzYWdlKG5hbWU6ICJtZXNzYWdlcy8xMjM0NTYiKWAKCiBBbnkgZmllbGRzIGluIHRoZSByZXF1ZXN0IG1lc3NhZ2Ugd2hpY2ggYXJlIG5vdCBib3VuZCBieSB0aGUgcGF0aCB0ZW1wbGF0ZQogYXV0b21hdGljYWxseSBiZWNvbWUgSFRUUCBxdWVyeSBwYXJhbWV0ZXJzIGlmIHRoZXJlIGlzIG5vIEhUVFAgcmVxdWVzdCBib2R5LgogRm9yIGV4YW1wbGU6CgogICAgIHNlcnZpY2UgTWVzc2FnaW5nIHsKICAgICAgIHJwYyBHZXRNZXNzYWdlKEdldE1lc3NhZ2VSZXF1ZXN0KSByZXR1cm5zIChNZXNzYWdlKSB7CiAgICAgICAgIG9wdGlvbiAoZ29vZ2xlLmFwaS5odHRwKSA9IHsKICAgICAgICAgICAgIGdldDoiL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBHZXRNZXNzYWdlUmVxdWVzdCB7CiAgICAgICBtZXNzYWdlIFN1Yk1lc3NhZ2UgewogICAgICAgICBzdHJpbmcgc3ViZmllbGQgPSAxOwogICAgICAgfQogICAgICAgc3RyaW5nIG1lc3NhZ2VfaWQgPSAxOyAvLyBNYXBwZWQgdG8gVVJMIHBhdGguCiAgICAgICBpbnQ2NCByZXZpc2lvbiA9IDI7ICAgIC8vIE1hcHBlZCB0byBVUkwgcXVlcnkgcGFyYW1ldGVyIGByZXZpc2lvbmAuCiAgICAgICBTdWJNZXNzYWdlIHN1YiA9IDM7ICAgIC8vIE1hcHBlZCB0byBVUkwgcXVlcnkgcGFyYW1ldGVyIGBzdWIuc3ViZmllbGRgLgogICAgIH0KCiBUaGlzIGVuYWJsZXMgYSBIVFRQIEpTT04gdG8gUlBDIG1hcHBpbmcgYXMgYmVsb3c6CgogSFRUUCB8IGdSUEMKIC0tLS0tfC0tLS0tCiBgR0VUIC92MS9tZXNzYWdlcy8xMjM0NTY/cmV2aXNpb249MiZzdWIuc3ViZmllbGQ9Zm9vYCB8CiBgR2V0TWVzc2FnZShtZXNzYWdlX2lkOiAiMTIzNDU2IiByZXZpc2lvbjogMiBzdWI6IFN1Yk1lc3NhZ2Uoc3ViZmllbGQ6CiAiZm9vIikpYAoKIE5vdGUgdGhhdCBmaWVsZHMgd2hpY2ggYXJlIG1hcHBlZCB0byBVUkwgcXVlcnkgcGFyYW1ldGVycyBtdXN0IGhhdmUgYQogcHJpbWl0aXZlIHR5cGUgb3IgYSByZXBlYXRlZCBwcmltaXRpdmUgdHlwZSBvciBhIG5vbi1yZXBlYXRlZCBtZXNzYWdlIHR5cGUuCiBJbiB0aGUgY2FzZSBvZiBhIHJlcGVhdGVkIHR5cGUsIHRoZSBwYXJhbWV0ZXIgY2FuIGJlIHJlcGVhdGVkIGluIHRoZSBVUkwKIGFzIGAuLi4/cGFyYW09QSZwYXJhbT1CYC4gSW4gdGhlIGNhc2Ugb2YgYSBtZXNzYWdlIHR5cGUsIGVhY2ggZmllbGQgb2YgdGhlCiBtZXNzYWdlIGlzIG1hcHBlZCB0byBhIHNlcGFyYXRlIHBhcmFtZXRlciwgc3VjaCBhcwogYC4uLj9mb28uYT1BJmZvby5iPUImZm9vLmM9Q2AuCgogRm9yIEhUVFAgbWV0aG9kcyB0aGF0IGFsbG93IGEgcmVxdWVzdCBib2R5LCB0aGUgYGJvZHlgIGZpZWxkCiBzcGVjaWZpZXMgdGhlIG1hcHBpbmcuIENvbnNpZGVyIGEgUkVTVCB1cGRhdGUgbWV0aG9kIG9uIHRoZQogbWVzc2FnZSByZXNvdXJjZSBjb2xsZWN0aW9uOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgVXBkYXRlTWVzc2FnZShVcGRhdGVNZXNzYWdlUmVxdWVzdCkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgcGF0Y2g6ICIvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICAgIGJvZHk6ICJtZXNzYWdlIgogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIFVwZGF0ZU1lc3NhZ2VSZXF1ZXN0IHsKICAgICAgIHN0cmluZyBtZXNzYWdlX2lkID0gMTsgLy8gbWFwcGVkIHRvIHRoZSBVUkwKICAgICAgIE1lc3NhZ2UgbWVzc2FnZSA9IDI7ICAgLy8gbWFwcGVkIHRvIHRoZSBib2R5CiAgICAgfQoKIFRoZSBmb2xsb3dpbmcgSFRUUCBKU09OIHRvIFJQQyBtYXBwaW5nIGlzIGVuYWJsZWQsIHdoZXJlIHRoZQogcmVwcmVzZW50YXRpb24gb2YgdGhlIEpTT04gaW4gdGhlIHJlcXVlc3QgYm9keSBpcyBkZXRlcm1pbmVkIGJ5CiBwcm90b3MgSlNPTiBlbmNvZGluZzoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBQQVRDSCAvdjEvbWVzc2FnZXMvMTIzNDU2IHsgInRleHQiOiAiSGkhIiB9YCB8IGBVcGRhdGVNZXNzYWdlKG1lc3NhZ2VfaWQ6CiAiMTIzNDU2IiBtZXNzYWdlIHsgdGV4dDogIkhpISIgfSlgCgogVGhlIHNwZWNpYWwgbmFtZSBgKmAgY2FuIGJlIHVzZWQgaW4gdGhlIGJvZHkgbWFwcGluZyB0byBkZWZpbmUgdGhhdAogZXZlcnkgZmllbGQgbm90IGJvdW5kIGJ5IHRoZSBwYXRoIHRlbXBsYXRlIHNob3VsZCBiZSBtYXBwZWQgdG8gdGhlCiByZXF1ZXN0IGJvZHkuICBUaGlzIGVuYWJsZXMgdGhlIGZvbGxvd2luZyBhbHRlcm5hdGl2ZSBkZWZpbml0aW9uIG9mCiB0aGUgdXBkYXRlIG1ldGhvZDoKCiAgICAgc2VydmljZSBNZXNzYWdpbmcgewogICAgICAgcnBjIFVwZGF0ZU1lc3NhZ2UoTWVzc2FnZSkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgcGF0Y2g6ICIvdjEvbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICAgIGJvZHk6ICIqIgogICAgICAgICB9OwogICAgICAgfQogICAgIH0KICAgICBtZXNzYWdlIE1lc3NhZ2UgewogICAgICAgc3RyaW5nIG1lc3NhZ2VfaWQgPSAxOwogICAgICAgc3RyaW5nIHRleHQgPSAyOwogICAgIH0KCgogVGhlIGZvbGxvd2luZyBIVFRQIEpTT04gdG8gUlBDIG1hcHBpbmcgaXMgZW5hYmxlZDoKCiBIVFRQIHwgZ1JQQwogLS0tLS18LS0tLS0KIGBQQVRDSCAvdjEvbWVzc2FnZXMvMTIzNDU2IHsgInRleHQiOiAiSGkhIiB9YCB8IGBVcGRhdGVNZXNzYWdlKG1lc3NhZ2VfaWQ6CiAiMTIzNDU2IiB0ZXh0OiAiSGkhIilgCgogTm90ZSB0aGF0IHdoZW4gdXNpbmcgYCpgIGluIHRoZSBib2R5IG1hcHBpbmcsIGl0IGlzIG5vdCBwb3NzaWJsZSB0bwogaGF2ZSBIVFRQIHBhcmFtZXRlcnMsIGFzIGFsbCBmaWVsZHMgbm90IGJvdW5kIGJ5IHRoZSBwYXRoIGVuZCBpbgogdGhlIGJvZHkuIFRoaXMgbWFrZXMgdGhpcyBvcHRpb24gbW9yZSByYXJlbHkgdXNlZCBpbiBwcmFjdGljZSB3aGVuCiBkZWZpbmluZyBSRVNUIEFQSXMuIFRoZSBjb21tb24gdXNhZ2Ugb2YgYCpgIGlzIGluIGN1c3RvbSBtZXRob2RzCiB3aGljaCBkb24ndCB1c2UgdGhlIFVSTCBhdCBhbGwgZm9yIHRyYW5zZmVycmluZyBkYXRhLgoKIEl0IGlzIHBvc3NpYmxlIHRvIGRlZmluZSBtdWx0aXBsZSBIVFRQIG1ldGhvZHMgZm9yIG9uZSBSUEMgYnkgdXNpbmcKIHRoZSBgYWRkaXRpb25hbF9iaW5kaW5nc2Agb3B0aW9uLiBFeGFtcGxlOgoKICAgICBzZXJ2aWNlIE1lc3NhZ2luZyB7CiAgICAgICBycGMgR2V0TWVzc2FnZShHZXRNZXNzYWdlUmVxdWVzdCkgcmV0dXJucyAoTWVzc2FnZSkgewogICAgICAgICBvcHRpb24gKGdvb2dsZS5hcGkuaHR0cCkgPSB7CiAgICAgICAgICAgZ2V0OiAiL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfSIKICAgICAgICAgICBhZGRpdGlvbmFsX2JpbmRpbmdzIHsKICAgICAgICAgICAgIGdldDogIi92MS91c2Vycy97dXNlcl9pZH0vbWVzc2FnZXMve21lc3NhZ2VfaWR9IgogICAgICAgICAgIH0KICAgICAgICAgfTsKICAgICAgIH0KICAgICB9CiAgICAgbWVzc2FnZSBHZXRNZXNzYWdlUmVxdWVzdCB7CiAgICAgICBzdHJpbmcgbWVzc2FnZV9pZCA9IDE7CiAgICAgICBzdHJpbmcgdXNlcl9pZCA9IDI7CiAgICAgfQoKIFRoaXMgZW5hYmxlcyB0aGUgZm9sbG93aW5nIHR3byBhbHRlcm5hdGl2ZSBIVFRQIEpTT04gdG8gUlBDIG1hcHBpbmdzOgoKIEhUVFAgfCBnUlBDCiAtLS0tLXwtLS0tLQogYEdFVCAvdjEvbWVzc2FnZXMvMTIzNDU2YCB8IGBHZXRNZXNzYWdlKG1lc3NhZ2VfaWQ6ICIxMjM0NTYiKWAKIGBHRVQgL3YxL3VzZXJzL21lL21lc3NhZ2VzLzEyMzQ1NmAgfCBgR2V0TWVzc2FnZSh1c2VyX2lkOiAibWUiIG1lc3NhZ2VfaWQ6CiAiMTIzNDU2IilgCgogIyMgUnVsZXMgZm9yIEhUVFAgbWFwcGluZwoKIDEuIExlYWYgcmVxdWVzdCBmaWVsZHMgKHJlY3Vyc2l2ZSBleHBhbnNpb24gbmVzdGVkIG1lc3NhZ2VzIGluIHRoZSByZXF1ZXN0CiAgICBtZXNzYWdlKSBhcmUgY2xhc3NpZmllZCBpbnRvIHRocmVlIGNhdGVnb3JpZXM6CiAgICAtIEZpZWxkcyByZWZlcnJlZCBieSB0aGUgcGF0aCB0ZW1wbGF0ZS4gVGhleSBhcmUgcGFzc2VkIHZpYSB0aGUgVVJMIHBhdGguCiAgICAtIEZpZWxkcyByZWZlcnJlZCBieSB0aGUgW0h0dHBSdWxlLmJvZHldW2dvb2dsZS5hcGkuSHR0cFJ1bGUuYm9keV0uIFRoZXkKICAgIGFyZSBwYXNzZWQgdmlhIHRoZSBIVFRQCiAgICAgIHJlcXVlc3QgYm9keS4KICAgIC0gQWxsIG90aGVyIGZpZWxkcyBhcmUgcGFzc2VkIHZpYSB0aGUgVVJMIHF1ZXJ5IHBhcmFtZXRlcnMsIGFuZCB0aGUKICAgICAgcGFyYW1ldGVyIG5hbWUgaXMgdGhlIGZpZWxkIHBhdGggaW4gdGhlIHJlcXVlc3QgbWVzc2FnZS4gQSByZXBlYXRlZAogICAgICBmaWVsZCBjYW4gYmUgcmVwcmVzZW50ZWQgYXMgbXVsdGlwbGUgcXVlcnkgcGFyYW1ldGVycyB1bmRlciB0aGUgc2FtZQogICAgICBuYW1lLgogIDIuIElmIFtIdHRwUnVsZS5ib2R5XVtnb29nbGUuYXBpLkh0dHBSdWxlLmJvZHldIGlzICIqIiwgdGhlcmUgaXMgbm8gVVJMCiAgcXVlcnkgcGFyYW1ldGVyLCBhbGwgZmllbGRzCiAgICAgYXJlIHBhc3NlZCB2aWEgVVJMIHBhdGggYW5kIEhUVFAgcmVxdWVzdCBib2R5LgogIDMuIElmIFtIdHRwUnVsZS5ib2R5XVtnb29nbGUuYXBpLkh0dHBSdWxlLmJvZHldIGlzIG9taXR0ZWQsIHRoZXJlIGlzIG5vIEhUVFAKICByZXF1ZXN0IGJvZHksIGFsbAogICAgIGZpZWxkcyBhcmUgcGFzc2VkIHZpYSBVUkwgcGF0aCBhbmQgVVJMIHF1ZXJ5IHBhcmFtZXRlcnMuCgogIyMjIFBhdGggdGVtcGxhdGUgc3ludGF4CgogICAgIFRlbXBsYXRlID0gIi8iIFNlZ21lbnRzIFsgVmVyYiBdIDsKICAgICBTZWdtZW50cyA9IFNlZ21lbnQgeyAiLyIgU2VnbWVudCB9IDsKICAgICBTZWdtZW50ICA9ICIqIiB8ICIqKiIgfCBMSVRFUkFMIHwgVmFyaWFibGUgOwogICAgIFZhcmlhYmxlID0gInsiIEZpZWxkUGF0aCBbICI9IiBTZWdtZW50cyBdICJ9IiA7CiAgICAgRmllbGRQYXRoID0gSURFTlQgeyAiLiIgSURFTlQgfSA7CiAgICAgVmVyYiAgICAgPSAiOiIgTElURVJBTCA7CgogVGhlIHN5bnRheCBgKmAgbWF0Y2hlcyBhIHNpbmdsZSBVUkwgcGF0aCBzZWdtZW50LiBUaGUgc3ludGF4IGAqKmAgbWF0Y2hlcwogemVybyBvciBtb3JlIFVSTCBwYXRoIHNlZ21lbnRzLCB3aGljaCBtdXN0IGJlIHRoZSBsYXN0IHBhcnQgb2YgdGhlIFVSTCBwYXRoCiBleGNlcHQgdGhlIGBWZXJiYC4KCiBUaGUgc3ludGF4IGBWYXJpYWJsZWAgbWF0Y2hlcyBwYXJ0IG9mIHRoZSBVUkwgcGF0aCBhcyBzcGVjaWZpZWQgYnkgaXRzCiB0ZW1wbGF0ZS4gQSB2YXJpYWJsZSB0ZW1wbGF0ZSBtdXN0IG5vdCBjb250YWluIG90aGVyIHZhcmlhYmxlcy4gSWYgYSB2YXJpYWJsZQogbWF0Y2hlcyBhIHNpbmdsZSBwYXRoIHNlZ21lbnQsIGl0cyB0ZW1wbGF0ZSBtYXkgYmUgb21pdHRlZCwgZS5nLiBge3Zhcn1gCiBpcyBlcXVpdmFsZW50IHRvIGB7dmFyPSp9YC4KCiBUaGUgc3ludGF4IGBMSVRFUkFMYCBtYXRjaGVzIGxpdGVyYWwgdGV4dCBpbiB0aGUgVVJMIHBhdGguIElmIHRoZSBgTElURVJBTGAKIGNvbnRhaW5zIGFueSByZXNlcnZlZCBjaGFyYWN0ZXIsIHN1Y2ggY2hhcmFjdGVycyBzaG91bGQgYmUgcGVyY2VudC1lbmNvZGVkCiBiZWZvcmUgdGhlIG1hdGNoaW5nLgoKIElmIGEgdmFyaWFibGUgY29udGFpbnMgZXhhY3RseSBvbmUgcGF0aCBzZWdtZW50LCBzdWNoIGFzIGAie3Zhcn0iYCBvcgogYCJ7dmFyPSp9ImAsIHdoZW4gc3VjaCBhIHZhcmlhYmxlIGlzIGV4cGFuZGVkIGludG8gYSBVUkwgcGF0aCBvbiB0aGUgY2xpZW50CiBzaWRlLCBhbGwgY2hhcmFjdGVycyBleGNlcHQgYFstXy5+MC05YS16QS1aXWAgYXJlIHBlcmNlbnQtZW5jb2RlZC4gVGhlCiBzZXJ2ZXIgc2lkZSBkb2VzIHRoZSByZXZlcnNlIGRlY29kaW5nLiBTdWNoIHZhcmlhYmxlcyBzaG93IHVwIGluIHRoZQogW0Rpc2NvdmVyeQogRG9jdW1lbnRdKGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL2Rpc2NvdmVyeS92MS9yZWZlcmVuY2UvYXBpcykgYXMKIGB7dmFyfWAuCgogSWYgYSB2YXJpYWJsZSBjb250YWlucyBtdWx0aXBsZSBwYXRoIHNlZ21lbnRzLCBzdWNoIGFzIGAie3Zhcj1mb28vKn0iYAogb3IgYCJ7dmFyPSoqfSJgLCB3aGVuIHN1Y2ggYSB2YXJpYWJsZSBpcyBleHBhbmRlZCBpbnRvIGEgVVJMIHBhdGggb24gdGhlCiBjbGllbnQgc2lkZSwgYWxsIGNoYXJhY3RlcnMgZXhjZXB0IGBbLV8ufi8wLTlhLXpBLVpdYCBhcmUgcGVyY2VudC1lbmNvZGVkLgogVGhlIHNlcnZlciBzaWRlIGRvZXMgdGhlIHJldmVyc2UgZGVjb2RpbmcsIGV4Y2VwdCAiJTJGIiBhbmQgIiUyZiIgYXJlIGxlZnQKIHVuY2hhbmdlZC4gU3VjaCB2YXJpYWJsZXMgc2hvdyB1cCBpbiB0aGUKIFtEaXNjb3ZlcnkKIERvY3VtZW50XShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9kaXNjb3ZlcnkvdjEvcmVmZXJlbmNlL2FwaXMpIGFzCiBgeyt2YXJ9YC4KCiAjIyBVc2luZyBnUlBDIEFQSSBTZXJ2aWNlIENvbmZpZ3VyYXRpb24KCiBnUlBDIEFQSSBTZXJ2aWNlIENvbmZpZ3VyYXRpb24gKHNlcnZpY2UgY29uZmlnKSBpcyBhIGNvbmZpZ3VyYXRpb24gbGFuZ3VhZ2UKIGZvciBjb25maWd1cmluZyBhIGdSUEMgc2VydmljZSB0byBiZWNvbWUgYSB1c2VyLWZhY2luZyBwcm9kdWN0LiBUaGUKIHNlcnZpY2UgY29uZmlnIGlzIHNpbXBseSB0aGUgWUFNTCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYGdvb2dsZS5hcGkuU2VydmljZWAKIHByb3RvIG1lc3NhZ2UuCgogQXMgYW4gYWx0ZXJuYXRpdmUgdG8gYW5ub3RhdGluZyB5b3VyIHByb3RvIGZpbGUsIHlvdSBjYW4gY29uZmlndXJlIGdSUEMKIHRyYW5zY29kaW5nIGluIHlvdXIgc2VydmljZSBjb25maWcgWUFNTCBmaWxlcy4gWW91IGRvIHRoaXMgYnkgc3BlY2lmeWluZyBhCiBgSHR0cFJ1bGVgIHRoYXQgbWFwcyB0aGUgZ1JQQyBtZXRob2QgdG8gYSBSRVNUIGVuZHBvaW50LCBhY2hpZXZpbmcgdGhlIHNhbWUKIGVmZmVjdCBhcyB0aGUgcHJvdG8gYW5ub3RhdGlvbi4gVGhpcyBjYW4gYmUgcGFydGljdWxhcmx5IHVzZWZ1bCBpZiB5b3UKIGhhdmUgYSBwcm90byB0aGF0IGlzIHJldXNlZCBpbiBtdWx0aXBsZSBzZXJ2aWNlcy4gTm90ZSB0aGF0IGFueSB0cmFuc2NvZGluZwogc3BlY2lmaWVkIGluIHRoZSBzZXJ2aWNlIGNvbmZpZyB3aWxsIG92ZXJyaWRlIGFueSBtYXRjaGluZyB0cmFuc2NvZGluZwogY29uZmlndXJhdGlvbiBpbiB0aGUgcHJvdG8uCgogRXhhbXBsZToKCiAgICAgaHR0cDoKICAgICAgIHJ1bGVzOgogICAgICAgICAjIFNlbGVjdHMgYSBnUlBDIG1ldGhvZCBhbmQgYXBwbGllcyBIdHRwUnVsZSB0byBpdC4KICAgICAgICAgLSBzZWxlY3RvcjogZXhhbXBsZS52MS5NZXNzYWdpbmcuR2V0TWVzc2FnZQogICAgICAgICAgIGdldDogL3YxL21lc3NhZ2VzL3ttZXNzYWdlX2lkfS97c3ViLnN1YmZpZWxkfQoKICMjIFNwZWNpYWwgbm90ZXMKCiBXaGVuIGdSUEMgVHJhbnNjb2RpbmcgaXMgdXNlZCB0byBtYXAgYSBnUlBDIHRvIEpTT04gUkVTVCBlbmRwb2ludHMsIHRoZQogcHJvdG8gdG8gSlNPTiBjb252ZXJzaW9uIG11c3QgZm9sbG93IHRoZSBbcHJvdG8zCiBzcGVjaWZpY2F0aW9uXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzL2RvY3MvcHJvdG8zI2pzb24pLgoKIFdoaWxlIHRoZSBzaW5nbGUgc2VnbWVudCB2YXJpYWJsZSBmb2xsb3dzIHRoZSBzZW1hbnRpY3Mgb2YKIFtSRkMgNjU3MF0oaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzY1NzApIFNlY3Rpb24gMy4yLjIgU2ltcGxlIFN0cmluZwogRXhwYW5zaW9uLCB0aGUgbXVsdGkgc2VnbWVudCB2YXJpYWJsZSAqKmRvZXMgbm90KiogZm9sbG93IFJGQyA2NTcwIFNlY3Rpb24KIDMuMi4zIFJlc2VydmVkIEV4cGFuc2lvbi4gVGhlIHJlYXNvbiBpcyB0aGF0IHRoZSBSZXNlcnZlZCBFeHBhbnNpb24KIGRvZXMgbm90IGV4cGFuZCBzcGVjaWFsIGNoYXJhY3RlcnMgbGlrZSBgP2AgYW5kIGAjYCwgd2hpY2ggd291bGQgbGVhZAogdG8gaW52YWxpZCBVUkxzLiBBcyB0aGUgcmVzdWx0LCBnUlBDIFRyYW5zY29kaW5nIHVzZXMgYSBjdXN0b20gZW5jb2RpbmcKIGZvciBtdWx0aSBzZWdtZW50IHZhcmlhYmxlcy4KCiBUaGUgcGF0aCB2YXJpYWJsZXMgKiptdXN0IG5vdCoqIHJlZmVyIHRvIGFueSByZXBlYXRlZCBvciBtYXBwZWQgZmllbGQsCiBiZWNhdXNlIGNsaWVudCBsaWJyYXJpZXMgYXJlIG5vdCBjYXBhYmxlIG9mIGhhbmRsaW5nIHN1Y2ggdmFyaWFibGUgZXhwYW5zaW9uLgoKIFRoZSBwYXRoIHZhcmlhYmxlcyAqKm11c3Qgbm90KiogY2FwdHVyZSB0aGUgbGVhZGluZyAiLyIgY2hhcmFjdGVyLiBUaGUgcmVhc29uCiBpcyB0aGF0IHRoZSBtb3N0IGNvbW1vbiB1c2UgY2FzZSAie3Zhcn0iIGRvZXMgbm90IGNhcHR1cmUgdGhlIGxlYWRpbmcgIi8iCiBjaGFyYWN0ZXIuIEZvciBjb25zaXN0ZW5jeSwgYWxsIHBhdGggdmFyaWFibGVzIG11c3Qgc2hhcmUgdGhlIHNhbWUgYmVoYXZpb3IuCgogUmVwZWF0ZWQgbWVzc2FnZSBmaWVsZHMgbXVzdCBub3QgYmUgbWFwcGVkIHRvIFVSTCBxdWVyeSBwYXJhbWV0ZXJzLCBiZWNhdXNlCiBubyBjbGllbnQgbGlicmFyeSBjYW4gc3VwcG9ydCBzdWNoIGNvbXBsaWNhdGVkIG1hcHBpbmcuCgogSWYgYW4gQVBJIG5lZWRzIHRvIHVzZSBhIEpTT04gYXJyYXkgZm9yIHJlcXVlc3Qgb3IgcmVzcG9uc2UgYm9keSwgaXQgY2FuIG1hcAogdGhlIHJlcXVlc3Qgb3IgcmVzcG9uc2UgYm9keSB0byBhIHJlcGVhdGVkIGZpZWxkLiBIb3dldmVyLCBzb21lIGdSUEMKIFRyYW5zY29kaW5nIGltcGxlbWVudGF0aW9ucyBtYXkgbm90IHN1cHBvcnQgdGhpcyBmZWF0dXJlLgoKCwoDBAEBEgS8AggQCo8BCgQEAQIAEgTBAgIWGoABIFNlbGVjdHMgYSBtZXRob2QgdG8gd2hpY2ggdGhpcyBydWxlIGFwcGxpZXMuCgogUmVmZXIgdG8gW3NlbGVjdG9yXVtnb29nbGUuYXBpLkRvY3VtZW50YXRpb25SdWxlLnNlbGVjdG9yXSBmb3Igc3ludGF4CiBkZXRhaWxzLgoKDwoFBAECAAQSBsECArwCEgoNCgUEAQIABRIEwQICCAoNCgUEAQIAARIEwQIJEQoNCgUEAQIAAxIEwQIUFQrQAQoEBAEIABIGxgIC3AIDGr8BIERldGVybWluZXMgdGhlIFVSTCBwYXR0ZXJuIGlzIG1hdGNoZWQgYnkgdGhpcyBydWxlcy4gVGhpcyBwYXR0ZXJuIGNhbiBiZQogdXNlZCB3aXRoIGFueSBvZiB0aGUge2dldHxwdXR8cG9zdHxkZWxldGV8cGF0Y2h9IG1ldGhvZHMuIEEgY3VzdG9tIG1ldGhvZAogY2FuIGJlIGRlZmluZWQgdXNpbmcgdGhlICdjdXN0b20nIGZpZWxkLgoKDQoFBAEIAAESBMYCCA8KXAoEBAECARIEyQIE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aGF0IGlzLAogdGhlIG5lc3RpbmcgbWF5IG9ubHkgYmUgb25lIGxldmVsIGRlZXApLgoKDQoFBAECCQQSBPECAgoKDQoFBAECCQYSBPECCxMKDQoFBAECCQESBPECFCcKDQoFBAECCQMSBPECKiwKRwoCBAISBvUCAPsCARo5IEEgY3VzdG9tIHBhdHRlcm4gaXMgdXNlZCBmb3IgZGVmaW5pbmcgY3VzdG9tIEhUVFAgdmVyYi4KCgsKAwQCARIE9QIIGQoyCgQEAgIAEgT3AgISGiQgVGhlIG5hbWUgb2YgdGhpcyBjdXN0b20gSFRUUCB2ZXJiLgoKDwoFBAICAAQSBvcCAvUCGwoNCgUEAgIABRIE9wICCAoNCgUEAgIAARIE9wIJDQoNCgUEAgIAAxIE9wIQEQo1CgQEAgIBEgT6AgISGicgVGhlIHBhdGggbWF0Y2hlZCBieSB0aGlzIGN1c3RvbSB2ZXJiLgoKDwoFBAICAQQSBvoCAvcCEgoNCgUEAgIBBRIE+gICCAoNCgUEAgIBARIE+gIJDQoNCgUEAgIBAxIE+gIQEWIGcHJvdG8zCsv5AgogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG8SD2dvb2dsZS5wcm90b2J1ZiJNChFGaWxlRGVzY3JpcHRvclNldBI4CgRmaWxlGAEgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkZpbGVEZXNjcmlwdG9yUHJvdG9SBGZpbGUi5AQKE0ZpbGVEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgdwYWNrYWdlGAIgASgJUgdwYWNrYWdlEh4KCmRlcGVuZGVuY3kYAyADKAlSCmRlcGVuZGVuY3kSKwoRcHVibGljX2RlcGVuZGVuY3kYCiADKAVSEHB1YmxpY0RlcGVuZGVuY3kSJwoPd2Vha19kZXBlbmRlbmN5GAsgAygFUg53ZWFrRGVwZW5kZW5jeRJDCgxtZXNzYWdlX3R5cGUYBCADKAsyIC5nb29nbGUucHJvdG9idWYuRGVzY3JpcHRvclByb3RvUgttZXNzYWdlVHlwZRJBCgllbnVtX3R5cGUYBSADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQcm90b1IIZW51bVR5cGUSQQoHc2VydmljZRgGIAMoCzInLmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlRGVzY3JpcHRvclByb3RvUgdzZXJ2aWNlEkMKCWV4dGVuc2lvbhgHIAMoCzIlLmdvb2dsZS5wcm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90b1IJZXh0ZW5zaW9uEjYKB29wdGlvbnMYCCABKAsyHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnNSB29wdGlvbnMSSQoQc291cmNlX2NvZGVfaW5mbxgJIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mb1IOc291cmNlQ29kZUluZm8SFgoGc3ludGF4GAwgASgJUgZzeW50YXgiuQYKD0Rlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEjsKBWZpZWxkGAIgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvUgVmaWVsZBJDCglleHRlbnNpb24YBiADKAsyJS5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG9SCWV4dGVuc2lvbhJBCgtuZXN0ZWRfdHlwZRgDIAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG9SCm5lc3RlZFR5cGUSQQoJZW51bV90eXBlGAQgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9yUHJvdG9SCGVudW1UeXBlElgKD2V4dGVuc2lvbl9yYW5nZRgFIAMoCzIvLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8uRXh0ZW5zaW9uUmFuZ2VSDmV4dGVuc2lvblJhbmdlEkQKCm9uZW9mX2RlY2wYCCADKAsyJS5nb29nbGUucHJvdG9idWYuT25lb2ZEZXNjcmlwdG9yUHJvdG9SCW9uZW9mRGVjbBI5CgdvcHRpb25zGAcgASgLMh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zUgdvcHRpb25zElUKDnJlc2VydmVkX3JhbmdlGAkgAygLMi4uZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90by5SZXNlcnZlZFJhbmdlUg1yZXNlcnZlZFJhbmdlEiMKDXJlc2VydmVkX25hbWUYCiADKAlSDHJlc2VydmVkTmFtZRp6Cg5FeHRlbnNpb25SYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQSQAoHb3B0aW9ucxgDIAEoCzImLmdvb2dsZS5wcm90b2J1Zi5FeHRlbnNpb25SYW5nZU9wdGlvbnNSB29wdGlvbnMaNwoNUmVzZXJ2ZWRSYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQifAoVRXh0ZW5zaW9uUmFuZ2VPcHRpb25zElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIimAYKFEZpZWxkRGVzY3JpcHRvclByb3RvEhIKBG5hbWUYASABKAlSBG5hbWUSFgoGbnVtYmVyGAMgASgFUgZudW1iZXISQQoFbGFiZWwYBCABKA4yKy5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uTGFiZWxSBWxhYmVsEj4KBHR5cGUYBSABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJvdG8uVHlwZVIEdHlwZRIbCgl0eXBlX25hbWUYBiABKAlSCHR5cGVOYW1lEhoKCGV4dGVuZGVlGAIgASgJUghleHRlbmRlZRIjCg1kZWZhdWx0X3ZhbHVlGAcgASgJUgxkZWZhdWx0VmFsdWUSHwoLb25lb2ZfaW5kZXgYCSABKAVSCm9uZW9mSW5kZXgSGwoJanNvbl9uYW1lGAogASgJUghqc29uTmFtZRI3CgdvcHRpb25zGAggASgLMh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9uc1IHb3B0aW9ucyK2AgoEVHlwZRIPCgtUWVBFX0RPVUJMRRABEg4KClRZUEVfRkxPQVQQAhIOCgpUWVBFX0lOVDY0EAMSDwoLVFlQRV9VSU5UNjQQBBIOCgpUWVBFX0lOVDMyEAUSEAoMVFlQRV9GSVhFRDY0EAYSEAoMVFlQRV9GSVhFRDMyEAcSDQoJVFlQRV9CT09MEAgSDwoLVFlQRV9TVFJJTkcQCRIOCgpUWVBFX0dST1VQEAoSEAoMVFlQRV9NRVNTQUdFEAsSDgoKVFlQRV9CWVRFUxAMEg8KC1RZUEVfVUlOVDMyEA0SDQoJVFlQRV9FTlVNEA4SEQoNVFlQRV9TRklYRUQzMhAPEhEKDVRZUEVfU0ZJWEVENjQQEBIPCgtUWVBFX1NJTlQzMhAREg8KC1RZUEVfU0lOVDY0EBIiQwoFTGFiZWwSEgoOTEFCRUxfT1BUSU9OQUwQARISCg5MQUJFTF9SRVFVSVJFRBACEhIKDkxBQkVMX1JFUEVBVEVEEAMiYwoUT25lb2ZEZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRI3CgdvcHRpb25zGAIgASgLMh0uZ29vZ2xlLnByb3RvYnVmLk9uZW9mT3B0aW9uc1IHb3B0aW9ucyLjAgoTRW51bURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEj8KBXZhbHVlGAIgAygLMikuZ29vZ2xlLnByb3RvYnVmLkVudW1WYWx1ZURlc2NyaXB0b3JQcm90b1IFdmFsdWUSNgoHb3B0aW9ucxgDIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9uc1IHb3B0aW9ucxJdCg5yZXNlcnZlZF9yYW5nZRgEIAMoCzI2Lmdvb2dsZS5wcm90b2J1Zi5FbnVtRGVzY3JpcHRvclByb3RvLkVudW1SZXNlcnZlZFJhbmdlUg1yZXNlcnZlZFJhbmdlEiMKDXJlc2VydmVkX25hbWUYBSADKAlSDHJlc2VydmVkTmFtZRo7ChFFbnVtUmVzZXJ2ZWRSYW5nZRIUCgVzdGFydBgBIAEoBVIFc3RhcnQSEAoDZW5kGAIgASgFUgNlbmQigwEKGEVudW1WYWx1ZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEhYKBm51bWJlchgCIAEoBVIGbnVtYmVyEjsKB29wdGlvbnMYAyABKAsyIS5nb29nbGUucHJvdG9idWYuRW51bVZhbHVlT3B0aW9uc1IHb3B0aW9ucyKnAQoWU2VydmljZURlc2NyaXB0b3JQcm90bxISCgRuYW1lGAEgASgJUgRuYW1lEj4KBm1ldGhvZBgCIAMoCzImLmdvb2dsZS5wcm90b2J1Zi5NZXRob2REZXNjcmlwdG9yUHJvdG9SBm1ldGhvZBI5CgdvcHRpb25zGAMgASgLMh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zUgdvcHRpb25zIokCChVNZXRob2REZXNjcmlwdG9yUHJvdG8SEgoEbmFtZRgBIAEoCVIEbmFtZRIdCgppbnB1dF90eXBlGAIgASgJUglpbnB1dFR5cGUSHwoLb3V0cHV0X3R5cGUYAyABKAlSCm91dHB1dFR5cGUSOAoHb3B0aW9ucxgEIAEoCzIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zUgdvcHRpb25zEjAKEGNsaWVudF9zdHJlYW1pbmcYBSABKAg6BWZhbHNlUg9jbGllbnRTdHJlYW1pbmcSMAoQc2VydmVyX3N0cmVhbWluZxgGIAEoCDoFZmFsc2VSD3NlcnZlclN0cmVhbWluZyKSCQoLRmlsZU9wdGlvbnMSIQoMamF2YV9wYWNrYWdlGAEgASgJUgtqYXZhUGFja2FnZRIwChRqYXZhX291dGVyX2NsYXNzbmFtZRgIIAEoCVISamF2YU91dGVyQ2xhc3NuYW1lEjUKE2phdmFfbXVsdGlwbGVfZmlsZXMYCiABKAg6BWZhbHNlUhFqYXZhTXVsdGlwbGVGaWxlcxJECh1qYXZhX2dlbmVyYXRlX2VxdWFsc19hbmRfaGFzaBgUIAEoCEICGAFSGWphdmFHZW5lcmF0ZUVxdWFsc0FuZEhhc2gSOgoWamF2YV9zdHJpbmdfY2hlY2tfdXRmOBgbIAEoCDoFZmFsc2VSE2phdmFTdHJpbmdDaGVja1V0ZjgSUwoMb3B0aW1pemVfZm9yGAkgASgOMikuZ29vZ2xlLnByb3RvYnVmLkZpbGVPcHRpb25zLk9wdGltaXplTW9kZToFU1BFRURSC29wdGltaXplRm9yEh0KCmdvX3BhY2thZ2UYCyABKAlSCWdvUGFja2FnZRI1ChNjY19nZW5lcmljX3NlcnZpY2VzGBAgASgIOgVmYWxzZVIRY2NHZW5lcmljU2VydmljZXMSOQoVamF2YV9nZW5lcmljX3NlcnZpY2VzGBEgASgIOgVmYWxzZVITamF2YUdlbmVyaWNTZXJ2aWNlcxI1ChNweV9nZW5lcmljX3NlcnZpY2VzGBIgASgIOgVmYWxzZVIRcHlHZW5lcmljU2VydmljZXMSNwoUcGhwX2dlbmVyaWNfc2VydmljZXMYKiABKAg6BWZhbHNlUhJwaHBHZW5lcmljU2VydmljZXMSJQoKZGVwcmVjYXRlZBgXIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSLwoQY2NfZW5hYmxlX2FyZW5hcxgfIAEoCDoFZmFsc2VSDmNjRW5hYmxlQXJlbmFzEioKEW9iamNfY2xhc3NfcHJlZml4GCQgASgJUg9vYmpjQ2xhc3NQcmVmaXgSKQoQY3NoYXJwX25hbWVzcGFjZRglIAEoCVIPY3NoYXJwTmFtZXNwYWNlEiEKDHN3aWZ0X3ByZWZpeBgnIAEoCVILc3dpZnRQcmVmaXgSKAoQcGhwX2NsYXNzX3ByZWZpeBgoIAEoCVIOcGhwQ2xhc3NQcmVmaXgSIwoNcGhwX25hbWVzcGFjZRgpIAEoCVIMcGhwTmFtZXNwYWNlEjQKFnBocF9tZXRhZGF0YV9uYW1lc3BhY2UYLCABKAlSFHBocE1ldGFkYXRhTmFtZXNwYWNlEiEKDHJ1YnlfcGFja2FnZRgtIAEoCVILcnVieVBhY2thZ2USWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24iOgoMT3B0aW1pemVNb2RlEgkKBVNQRUVEEAESDQoJQ09ERV9TSVpFEAISEAoMTElURV9SVU5USU1FEAMqCQjoBxCAgICAAkoECCYQJyLRAgoOTWVzc2FnZU9wdGlvbnMSPAoXbWVzc2FnZV9zZXRfd2lyZV9mb3JtYXQYASABKAg6BWZhbHNlUhRtZXNzYWdlU2V0V2lyZUZvcm1hdBJMCh9ub19zdGFuZGFyZF9kZXNjcmlwdG9yX2FjY2Vzc29yGAIgASgIOgVmYWxzZVIcbm9TdGFuZGFyZERlc2NyaXB0b3JBY2Nlc3NvchIlCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBIbCgltYXBfZW50cnkYByABKAhSCG1hcEVudHJ5ElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAJKBAgIEAlKBAgJEAoi4gMKDEZpZWxkT3B0aW9ucxJBCgVjdHlwZRgBIAEoDjIjLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuQ1R5cGU6BlNUUklOR1IFY3R5cGUSFgoGcGFja2VkGAIgASgIUgZwYWNrZWQSRwoGanN0eXBlGAYgASgOMiQuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5KU1R5cGU6CUpTX05PUk1BTFIGanN0eXBlEhkKBGxhenkYBSABKAg6BWZhbHNlUgRsYXp5EiUKCmRlcHJlY2F0ZWQYAyABKAg6BWZhbHNlUgpkZXByZWNhdGVkEhkKBHdlYWsYCiABKAg6BWZhbHNlUgR3ZWFrElgKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uUhN1bmludGVycHJldGVkT3B0aW9uIi8KBUNUeXBlEgoKBlNUUklORxAAEggKBENPUkQQARIQCgxTVFJJTkdfUElFQ0UQAiI1CgZKU1R5cGUSDQoJSlNfTk9STUFMEAASDQoJSlNfU1RSSU5HEAESDQoJSlNfTlVNQkVSEAIqCQjoBxCAgICAAkoECAQQBSJzCgxPbmVvZk9wdGlvbnMSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiLAAQoLRW51bU9wdGlvbnMSHwoLYWxsb3dfYWxpYXMYAiABKAhSCmFsbG93QWxpYXMSJQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2VSCmRlcHJlY2F0ZWQSWAoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb25SE3VuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAkoECAUQBiKeAQoQRW51bVZhbHVlT3B0aW9ucxIlCgpkZXByZWNhdGVkGAEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIpwBCg5TZXJ2aWNlT3B0aW9ucxIlCgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZVIKZGVwcmVjYXRlZBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACIuACCg1NZXRob2RPcHRpb25zEiUKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlUgpkZXByZWNhdGVkEnEKEWlkZW1wb3RlbmN5X2xldmVsGCIgASgOMi8uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlvbnMuSWRlbXBvdGVuY3lMZXZlbDoTSURFTVBPVEVOQ1lfVU5LTk9XTlIQaWRlbXBvdGVuY3lMZXZlbBJYChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvblITdW5pbnRlcnByZXRlZE9wdGlvbiJQChBJZGVtcG90ZW5jeUxldmVsEhcKE0lERU1QT1RFTkNZX1VOS05PV04QABITCg9OT19TSURFX0VGRkVDVFMQARIOCgpJREVNUE9URU5UEAIqCQjoBxCAgICAAiKaAwoTVW5pbnRlcnByZXRlZE9wdGlvbhJBCgRuYW1lGAIgAygLMi0uZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24uTmFtZVBhcnRSBG5hbWUSKQoQaWRlbnRpZmllcl92YWx1ZRgDIAEoCVIPaWRlbnRpZmllclZhbHVlEiwKEnBvc2l0aXZlX2ludF92YWx1ZRgEIAEoBFIQcG9zaXRpdmVJbnRWYWx1ZRIsChJuZWdhdGl2ZV9pbnRfdmFsdWUYBSABKANSEG5lZ2F0aXZlSW50VmFsdWUSIQoMZG91YmxlX3ZhbHVlGAYgASgBUgtkb3VibGVWYWx1ZRIhCgxzdHJpbmdfdmFsdWUYByABKAxSC3N0cmluZ1ZhbHVlEicKD2FnZ3JlZ2F0ZV92YWx1ZRgIIAEoCVIOYWdncmVnYXRlVmFsdWUaSgoITmFtZVBhcnQSGwoJbmFtZV9wYXJ0GAEgAigJUghuYW1lUGFydBIhCgxpc19leHRlbnNpb24YAiACKAhSC2lzRXh0ZW5zaW9uIqcCCg5Tb3VyY2VDb2RlSW5mbxJECghsb2NhdGlvbhgBIAMoCzIoLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5mby5Mb2NhdGlvblIIbG9jYXRpb24azgEKCExvY2F0aW9uEhYKBHBhdGgYASADKAVCAhABUgRwYXRoEhYKBHNwYW4YAiADKAVCAhABUgRzcGFuEikKEGxlYWRpbmdfY29tbWVudHMYAyABKAlSD2xlYWRpbmdDb21tZW50cxIrChF0cmFpbGluZ19jb21tZW50cxgEIAEoCVIQdHJhaWxpbmdDb21tZW50cxI6ChlsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzGAYgAygJUhdsZWFkaW5nRGV0YWNoZWRDb21tZW50cyLRAQoRR2VuZXJhdGVkQ29kZUluZm8STQoKYW5ub3RhdGlvbhgBIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5HZW5lcmF0ZWRDb2RlSW5mby5Bbm5vdGF0aW9uUgphbm5vdGF0aW9uGm0KCkFubm90YXRpb24SFgoEcGF0aBgBIAMoBUICEAFSBHBhdGgSHwoLc291cmNlX2ZpbGUYAiABKAlSCnNvdXJjZUZpbGUSFAoFYmVnaW4YAyABKAVSBWJlZ2luEhAKA2VuZBgEIAEoBVIDZW5kQo8BChNjb20uZ29vZ2xlLnByb3RvYnVmQhBEZXNjcmlwdG9yUHJvdG9zSAFaPmdpdGh1Yi5jb20vZ29sYW5nL3Byb3RvYnVmL3Byb3RvYy1nZW4tZ28vZGVzY3JpcHRvcjtkZXNjcmlwdG9y+AEBogIDR1BCqgIaR29vZ2xlLlByb3RvYnVmLlJlZmxlY3Rpb25KrL4CCgcSBScA8gYBCqoPCgEMEgMnABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCjLbAiBBdXRob3I6IGtlbnRvbkBnb29nbGUuY29tIChLZW50b24gVmFyZGEpCiAgQmFzZWQgb24gb3JpZ2luYWwgUHJvdG9jb2wgQnVmZmVycyBkZXNpZ24gYnkKICBTYW5qYXkgR2hlbWF3YXQsIEplZmYgRGVhbiwgYW5kIG90aGVycy4KCiBUaGUgbWVzc2FnZXMgaW4gdGhpcyBmaWxlIGRlc2NyaWJlIHRoZSBkZWZpbml0aW9ucyBmb3VuZCBpbiAucHJvdG8gZmlsZXMuCiBBIHZhbGlkIC5wcm90byBmaWxlIGNhbiBiZSB0cmFuc2xhdGVkIGRpcmVj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IHRoZSAqT3B0aW9ucyBtZXNzYWdlcy4KIFRoZXNlIGV4dGVuc2lvbnMgbWF5IG5vdCB5ZXQgYmUga25vd24gYXQgcGFyc2luZyB0aW1lLCBzbyB0aGUgcGFyc2VyIGNhbm5vdAogc3RvcmUgdGhlIHZhbHVlcyBpbiB0aGVtLiAgSW5zdGVhZCBpdCBzdG9yZXMgdGhlbSBpbiBhIGZpZWxkIGluIHRoZSAqT3B0aW9ucwogbWVzc2FnZSBjYWxsZWQgdW5pbnRlcnByZXRlZF9vcHRpb24uIFRoaXMgZmllbGQgbXVzdCBoYXZlIHRoZSBzYW1lIG5hbWUKIGFjcm9zcyBhbGwgKk9wdGlvbnMgbWVzc2FnZXMuIFdlIHRoZW4gdXNlIHRoaXMgZmllbGQgdG8gcG9wdWxhdGUgdGhlCiBleHRlbnNpb25zIHdoZW4gd2UgYnVpbGQgYSBkZXNjcmlwdG9yLCBhdCB3aGljaCBwb2ludCBhbGwgcHJvdG9zIGhhdmUgYmVlbgogcGFyc2VkIGFuZCBzbyBhbGwgZXh0ZW5zaW9ucyBhcmUga25vd24uCgogRXh0ZW5zaW9uIG51bWJlcnMgZm9yIGN1c3RvbSBvcHRpb25zIG1heSBiZSBjaG9zZW4gYXMgZm9sbG93czoKICogRm9yIG9wdGlvbnMgd2hpY2ggd2lsbCBvbmx5IGJlIHVzZWQgd2l0aGluIGEgc2luZ2xlIGFwcGxpY2F0aW9uIG9yCiAgIG9yZ2FuaXphdGlvbiwgb3IgZm9yIGV4cGVyaW1lbnRhbCBvcHRpb25zLCB1c2UgZmllbGQgbnVtYmVycyA1MDAwMAogICB0aHJvdWdoIDk5OTk5LiAgSXQgaXMgdXAgdG8geW91IHRvIGVuc3VyZSB0aGF0IHlvdSBkbyBub3QgdXNlIHRoZQogICBzYW1lIG51bWJlciBmb3IgbXVsdGlwbGUgb3B0aW9ucy4KICogRm9yIG9wdGlvbnMgd2hpY2ggd2lsbCBiZSBwdWJsaXNoZWQgYW5kIHVzZWQgcHVibGljbHkgYnkgbXVsdGlwbGUKICAgaW5kZXBlbmRlbnQgZW50aXRpZXMsIGUtbWFpbCBwcm90b2J1Zi1nbG9iYWwtZXh0ZW5zaW9uLXJlZ2lzdHJ5QGdvb2dsZS5jb20KICAgdG8gcmVzZXJ2ZSBleHRlbnNpb24gbnVtYmVycy4gU2ltcGx5IHByb3ZpZGUgeW91ciBwcm9qZWN0IG5hbWUgKGUuZy4KICAgT2JqZWN0aXZlLUMgcGx1Z2luKSBhbmQgeW91ciBwcm9qZWN0IHdlYnNpdGUgKGlmIGF2YWlsYWJsZSkgLS0gdGhlcmUncyBubwogICBuZWVkIHRvIGV4cGxhaW4gaG93IHlvdSBpbnRlbmQgdG8gdXNlIHRoZW0uIFVzdWFsbHkgeW91IG9ubHkgbmVlZCBvbmUKICAgZXh0ZW5zaW9uIG51bWJlci4gWW91IGNhbiBkZWNsYXJlIG11bHRpcGxlIG9wdGlvbnMgd2l0aCBvbmx5IG9uZSBleHRlbnNpb24KICAgbnVtYmVyIGJ5IHB1dHRpbmcgdGhlbSBpbiBhIHN1Yi1tZXNzYWdlLiBTZWUgdGhlIEN1c3RvbSBPcHRpb25zIHNlY3Rpb24gb2YKICAgdGhlIGRvY3MgZm9yIGV4YW1wbGVzOgogICBodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS9wcm90b2NvbC1idWZmZXJzL2RvY3MvcHJvdG8jb3B0aW9ucwogICBJZiB0aGlzIHR1cm5zIG91dCB0byBiZSBwb3B1bGFyLCBhIHdlYiBzZXJ2aWNlIHdpbGwgYmUgc2V0IHVwCiAgIHRvIGF1dG9tYXRpY2FsbHkgYXNzaWduIG9wdGlvbiBudW1iZXJzLgoKCwoDBAoBEgS9AggTCvQBCgQECgIAEgTDAgIjGuUBIFNldHMgdGhlIEphdmEgcGFja2FnZSB3aGVyZSBjbGFzc2VzIGdlbmVyYXRlZCBmcm9tIHRoaXMgLnByb3RvIHdpbGwgYmUKIHBsYWNlZC4gIEJ5IGRlZmF1bHQsIHRoZSBwcm90byBwYWNrYWdlIGlzIHVzZWQsIGJ1dCB0aGlzIGlzIG9mdGVuCiBpbmFwcHJvcHJpYXRlIGJlY2F1c2UgcHJvdG8gcGFja2FnZXMgZG8gbm90IG5vcm1hbGx5IHN0YXJ0IHdpdGggYmFja3dhcmRzCiBkb21haW4gbmFtZXMuCgoNCgUECgIABBIEwwICCgoNCgUECgIABRIEwwILEQoNCgUECgIAARIEwwISHgoNCgUECgIAAxIEwwIhIgq/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YXMgZmV3ZXIgZmVhdHVyZXMsIGFuZCBpcyBtb3JlIGNvbXBsaWNhdGVkLgoKIFRoZSBtZXNzYWdlIG11c3QgYmUgZGVmaW5lZCBleGFjdGx5IGFzIGZvbGxvd3M6CiAgIG1lc3NhZ2UgRm9vIHsKICAgICBvcHRpb24gbWVzc2FnZV9zZXRfd2lyZV9mb3JtYXQgPSB0cnVlOwogICAgIGV4dGVuc2lvbnMgNCB0byBtYXg7CiAgIH0KIE5vdGUgdGhhdCB0aGUgbWVzc2FnZSBjYW5ub3QgaGF2ZSBhbnkgZGVmaW5lZCBmaWVsZHM7IE1lc3NhZ2VTZXRzIG9ubHkKIGhhdmUgZXh0ZW5zaW9ucy4KCiBBbGwgZXh0ZW5zaW9ucyBvZiB5b3VyIHR5cGUgbXVzdCBiZSBzaW5ndWxhciBtZXNzYWdlczsgZS5nLiB0aGV5IGNhbm5vdAogYmUgaW50MzJzLCBlbnVtcywgb3IgcmVwZWF0ZWQgbWVzc2FnZXMuCgogQmVjYXVzZSB0aGlzIGlzIGFuIG9wdGlvbiwgdGhlIGFib3ZlIHR3byByZXN0cmljdGlvbnMgYXJlIG5vdCBlbmZvcmNlZCBieQogdGhlIHByb3RvY29sIGNvbXBpbGVyLgoKDQoFBAsCAAQSBMwDAgoKDQoFBAsCAAUSBMwDCw8KDQoFBAsCAAESBMwDECcKDQoFBAsCAAMSBMwDKisKDQoFBAsCAAgSBMwDLDsKDQoFBAsCAAcSBMwDNToK6wEKBAQLAgESBNEDAkQa3AEgRGlzYWJsZXMgdGhlIGdlbmVyYXRpb24gb2YgdGhlIHN0YW5kYXJkICJkZXNjcmlwdG9yKCkiIGFjY2Vzc29yLCB3aGljaCBjYW4KIGNvbmZsaWN0IHdpdGggYSBmaWVsZCBvZiB0aGUgc2FtZSBuYW1lLiAgVGhpcyBpcyBtZWFudCB0byBtYWtlIG1pZ3JhdGlvbgogZnJvbSBwcm90bzEgZWFzaWVyOyBuZXcgY29kZSBzaG91bGQgYXZvaWQgZmllbGRzIG5hbWVkICJkZXNjcmlwdG9yIi4KCg0KBQQLAgEEEgTRAwIKCg0KBQQLAgEFEgTRAwsPCg0KBQQLAgEBEgTRAxAvCg0KBQQLAgEDEgTRAzIzCg0KBQQLAgEIEgTRAzRDCg0KBQQLAgEHEgTRAz1CCu4BCgQECwICEgTXAwIvGt8BIElzIHRoaXMgbWVzc2FnZSBkZXByZWNhdGVkPwogRGVwZW5kaW5nIG9uIHRoZSB0YXJnZXQgcGxhdGZvcm0sIHRoaXMgY2FuIGVtaXQgRGVwcmVjYXRlZCBhbm5vdGF0aW9ucwogZm9yIHRoZSBtZXNzYWdlLCBvciBpdCB3aWxsIGJlIGNvbXBsZXRlbHkgaWdub3JlZDsgaW4gdGhlIHZlcnkgbGVhc3QsCiB0aGlzIGlzIGEgZm9ybWFsaXphdGlvbiBmb3IgZGVwcmVjYXRpbmcgbWVzc2FnZXMuCgoNCgUECwICBBIE1wMCCgoNCgUECwICBRIE1wMLDwoNCgUECwICARIE1wMQGgoNCgUECwICAxIE1wMdHgoNCgUECwICCBIE1wMfLgoNCgUECwICBxIE1wMoLQqeBgoEBAsCAxIE7gMCHhqPBiBXaGV0aGVyIHRoZSBtZXNzYWdlIGlzIGFuIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIG1hcCBlbnRyeSB0eXBlIGZvciB0aGUKIG1hcHMgZmllbGQuCgogRm9yIG1hcHMgZmllbGRzOgogICAgIG1hcDxLZXlUeXBlLCBWYWx1ZVR5cGU+IG1hcF9maWVsZCA9IDE7CiBUaGUgcGFyc2VkIGRlc2NyaXB0b3IgbG9va3MgbGlrZToKICAgICBtZXNzYWdlIE1hcEZpZWxkRW50cnkgewogICAgICAgICBvcHRpb24gbWFwX2VudHJ5ID0gdHJ1ZTsKICAgICAgICAgb3B0aW9uYWwgS2V5VHlwZSBrZXkgPSAxOwogICAgICAgICBvcHRpb25hbCBWYWx1ZVR5cGUgdmFsdWUgPSAyOwogICAgIH0KICAgICByZXBlYXRlZCBNYXBGaWVsZEVudHJ5IG1hcF9maWVsZCA9IDE7CgogSW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGdlbmVyYXRlIHRoZSBtYXBfZW50cnk9dHJ1ZSBtZXNzYWdlLCBidXQKIHVzZSBhIG5hdGl2ZSBtYXAgaW4gdGhlIHRhcmdldCBsYW5ndWFnZSB0byBob2xkIHRoZSBrZXlzIGFuZCB2YWx1ZXMuCiBUaGUgcmVmbGVjdGlvbiBBUElzIGlu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ZXMgdGhlIEphdmFTY3JpcHQgdHlwZSB1c2VkIGZvciB2YWx1ZXMgb2YgdGhlCiBmaWVsZC4gIFRoZSBvcHRpb24gaXMgcGVybWl0dGVkIG9ubHkgZm9yIDY0IGJpdCBpbnRlZ3JhbCBhbmQgZml4ZWQgdHlwZXMKIChpbnQ2NCwgdWludDY0LCBzaW50NjQsIGZpeGVkNjQsIHNmaXhlZDY0KS4gIEEgZmllbGQgd2l0aCBqc3R5cGUgSlNfU1RSSU5HCiBpcyByZXByZXNlbnRlZCBhcyBKYXZhU2NyaXB0IHN0cmluZywgd2hpY2ggYXZvaWRzIGxvc3Mgb2YgcHJlY2lzaW9uIHRoYXQKIGNhbiBoYXBwZW4gd2hlbiBhIGxhcmdlIHZhbHVlIGlzIGNvbnZlcnRlZCB0byBhIGZsb2F0aW5nIHBvaW50IEphdmFTY3JpcHQuCiBTcGVjaWZ5aW5nIEpTX05VTUJFUiBmb3IgdGhlIGpzdHlwZSBjYXVzZXMgdGhlIGdlbmVyYXRlZCBKYXZhU2NyaXB0IGNvZGUgdG8KIHVzZSB0aGUgSmF2YVNjcmlwdCAibnVtYmVyIiB0eXBlLiAgVGhlIGJlaGF2aW9yIG9mIHRoZSBkZWZhdWx0IG9wdGlvbgogSlNfTk9STUFMIGlzIGltcGxlbWVudGF0aW9uIGRlcGVuZGVudC4KCiBUaGlzIG9wdGlvbiBpcyBhbiBlbnVtIHRvIHBlcm1pdCBhZGRpdGlvbmFsIHR5cGVzIHRvIGJlIGFkZGVkLCBlLmcuCiBnb29nLm1hdGguSW50ZWdlci4KCg0KBQQMAgIEEgSaBAIKCg0KBQQMAgIGEgSaBAsRCg0KBQQMAgIBEgSaBBIYCg0KBQQMAgIDEgSaBBscCg0KBQQMAgIIEgSaBB0yCg0KBQQMAgIHEgSaBCgxCg4KBAQMBAESBpsEAqQEAwoNCgUEDAQBARIEmwQHDQonCgYEDAQBAgASBJ0EBBIaFyBVc2UgdGhlIGRlZmF1bHQgdHlwZS4KCg8KBwQMBAECAAESBJ0EBA0KDwoHBAwEAQIAAhIEnQQQEQopCgYEDAQBAgESBKAEBBIaGSBVc2UgSmF2YVNjcmlwdCBzdHJpbmdzLgoKDwoHBAwEAQIBARIEoAQEDQoPCgcEDAQBAgECEgSgBBARCikKBgQMBAECAhIEowQEEhoZIFVzZSBKYXZhU2NyaXB0IG51bWJlcnMuCgoPCgcEDAQBAgIBEgSjBAQNCg8KBwQMBAECAgISBKMEEBEK7wwKBAQMAgMSBMIEAika4AwgU2hvdWxkIHRoaXMgZmllbGQgYmUgcGFyc2VkIGxhemlseT8gIExhenkgYXBwbGllcyBvbmx5IHRvIG1lc3NhZ2UtdHlwZQogZmllbGRzLiAgSXQgbWVhbnMgdGhhdCB3aGVuIHRoZSBvdXRlciBtZXNzYWdlIGlzIGluaXRpYWxseSBwYXJzZWQsIHRoZQogaW5uZXIgbWVzc2FnZSdzIGNvbnRlbnRzIHdpbGwgbm90IGJlIHBhcnNlZCBidXQgaW5zdGVhZCBzdG9yZWQgaW4gZW5jb2RlZAogZm9ybS4gIFRoZSBpbm5lciBtZXNzYWdlIHdpbGwgYWN0dWFsbHkgYmUgcGFyc2VkIHdoZW4gaXQgaXMgZmlyc3QgYWNjZXNzZWQuCgogVGhpcyBpcyBvbmx5IGEgaGludC4gIEltcGxlbWVudGF0aW9ucyBhcmUgZnJlZSB0byBjaG9vc2Ugd2hldGhlciB0byB1c2UKIGVhZ2VyIG9yIGxhenkgcGFyc2luZyByZWdhcmRsZXNzIG9mIHRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbi4gIEhvd2V2ZXIsCiBzZXR0aW5nIHRoaXMgb3B0aW9uIHRydWUgc3VnZ2VzdHMgdGhhdCB0aGUgcHJvdG9jb2wgYXV0aG9yIGJlbGlldmVzIHRoYXQKIHVzaW5nIGxhenkgcGFyc2luZyBvbiB0aGlzIGZpZWxkIGlzIHdvcnRoIHRoZSBhZGRpdGlvbmFsIGJvb2trZWVwaW5nCiBvdmVyaGVhZCB0eXBpY2FsbHkgbmVlZGVkIHRvIGltcGxlbWVudCBpdC4KCiBUaGlzIG9wdGlvbiBkb2VzIG5vdCBhZmZlY3QgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgYW55IGdlbmVyYXRlZCBjb2RlOwogYWxsIG1ldGhvZCBzaWduYXR1cmVzIHJlbWFpbiB0aGUgc2FtZS4gIEZ1cnRoZXJtb3JlLCB0aHJlYWQtc2FmZXR5IG9mIHRoZQogaW50ZXJmYWNlIGlzIG5vdCBhZmZlY3RlZCBieSB0aGlzIG9wdGlvbjsgY29uc3QgbWV0aG9kcyByZW1haW4gc2FmZSB0bwogY2FsbCBmcm9tIG11bHRpcGxlIHRocmVhZHMgY29uY3VycmVudGx5LCB3aGlsZSBub24tY29uc3QgbWV0aG9kcyBjb250aW51ZQogdG8gcmVxdWlyZSBleGNsdXNpdmUgYWNjZXNzLgoKCiBOb3RlIHRoYXQgaW1wbGVtZW50YXRpb25zIG1heSBjaG9vc2Ugbm90IHRvIGNoZWNrIHJlcXVpcmVkIGZpZWxkcyB3aXRoaW4KIGEgbGF6eSBzdWItbWVzc2FnZS4gIFRoYXQgaXMsIGNhbGxpbmcgSXNJbml0aWFsaXplZCgpIG9uIHRoZSBvdXRlciBtZXNzYWdlCiBtYXkgcmV0dXJuIHRydWUgZXZlbiBpZiB0aGUgaW5uZXIgbWVzc2FnZSBoYXMgbWlzc2luZyByZXF1aXJlZCBmaWVsZHMuCiBUaGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIG90aGVyd2lzZSB0aGUgaW5uZXIgbWVzc2FnZSB3b3VsZCBoYXZlIHRvIGJlCiBwYXJzZWQgaW4gb3JkZXIgdG8gcGVyZm9ybSB0aGUgY2hlY2ssIGRlZmVhdGluZyB0aGUgcHVycG9zZSBvZiBsYXp5CiBwYXJzaW5nLiAgQW4gaW1wbGVtZW50YXRpb24gd2hpY2ggY2hvb3NlcyBub3QgdG8gY2hlY2sgcmVxdWlyZWQgZmllbGRzCiBtdXN0IGJlIGNvbnNpc3RlbnQgYWJvdXQgaXQuICBUaGF0IGlzLCBmb3IgYW55IHBhcnRpY3VsYXIgc3ViLW1lc3NhZ2UsIHRoZQogaW1wbGVtZW50YXRpb24gbXVzdCBlaXRoZXIgKmFsd2F5cyogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgb3IgKm5ldmVyKgogY2hlY2sgaXRzIHJlcXVpcmVkIGZpZWxkcywgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgbWVzc2FnZSBoYXMKIGJlZW4gcGFyc2VkLgoKDQoFBAwCAwQSBMIEAgoKDQoFBAwCAwUSBMIECw8KDQoFBAwCAwESBMIEEBQKDQoFBAwCAwMSBMIEFxgKDQoFBAwCAwgSBMIEGSgK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XiAgICAgICBeXiAgICAgXl4gIF4gIF5eXgogICBhICAgICAgIGJjICAgICBkZSAgZiAgZ2hpCiBXZSBoYXZlIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOgogICBzcGFuICAgcGF0aCAgICAgICAgICAgICAgIHJlcHJlc2VudHMKICAgW2EsaSkgIFsgNCwgMCwgMiwgMCBdICAgICBUaGUgd2hvbGUgZmllbGQgZGVmaW5pdGlvbi4KICAgW2EsYikgIFsgNCwgMCwgMiwgMCwgNCBdICBUaGUgbGFiZWwgKG9wdGlvbmFsKS4KICAgW2MsZCkgIFsgNCwgMCwgMiwgMCwgNSBdICBUaGUgdHlwZSAoc3RyaW5nKS4KICAgW2UsZikgIFsgNCwgMCwgMiwgMCwgMSBdICBUaGUgbmFtZSAoZm9vKS4KICAgW2csaCkgIFsgNCwgMCwgMiwgMCwgMyBdICBUaGUgbnVtYmVyICgxKS4KCiBOb3RlczoKIC0gQSBsb2NhdGlvbiBtYXkgcmVmZXIgdG8gYSByZXBlYXRlZCBmaWVsZCBpdHNlbGYgKGkuZS4gbm90IHRvIGFueQogICBwYXJ0aWN1bGFyIGluZGV4IHdpdGhpbiBpdCkuICBUaGlzIGlzIHVzZWQgd2hlbmV2ZXIgYSBzZXQgb2YgZWxlbWVudHMgYXJlCiAgIGxvZ2ljYWxseSBlbmNsb3NlZCBpbiBhIHNpbmdsZSBjb2RlIHNlZ21lbnQuICBGb3IgZXhhbXBsZSwgYW4gZW50aXJlCiAgIGV4dGVuZCBibG9jayAocG9zc2libHkgY29udGFpbmluZyBtdWx0aXBsZSBleHRlbnNpb24gZGVmaW5pdGlvbnMpIHdpbGwKICAgaGF2ZSBhbiBvdXRlciBsb2NhdGlvbiB3aG9zZSBwYXRoIHJlZmVycyB0byB0aGUgImV4dGVuc2lvbnMiIHJlcGVhdGVkCiAgIGZpZWxkIHdpdGhvdXQgYW4gaW5kZXguCiAtIE11bHRpcGxlIGxvY2F0aW9ucyBtYXkgaGF2ZSB0aGUgc2FtZSBwYXRoLiAgVGhpcyBoYXBwZW5zIHdoZW4gYSBzaW5nbGUKICAgbG9naWNhbCBkZWNsYXJhdGlvbiBpcyBzcHJlYWQgb3V0IGFjcm9zcyBtdWx0aXBsZSBwbGFjZXMuICBUaGUgbW9zdAogICBvYnZpb3VzIGV4YW1wbGUgaXMgdGhlICJleHRlbmQiIGJsb2NrIGFnYWluIC0tIHRoZXJlIG1heSBiZSBtdWx0aXBsZQogICBleHRlbmQgYmxvY2tzIGluIHRoZSBzYW1lIHNjb3BlLCBlYWNoIG9mIHdoaWNoIHdpbGwgaGF2ZSB0aGUgc2FtZSBwYXRoLgogLSBBIGxvY2F0aW9uJ3Mgc3BhbiBpcyBub3QgYWx3YXlzIGEgc3Vic2V0IG9mIGl0cyBwYXJlbnQncyBzcGFuLiAgRm9yCiAgIGV4YW1wbGUsIHRoZSAiZXh0ZW5kZWUiIG9mIGFuIGV4dGVuc2lvbiBkZWNsYXJhdGlvbiBhcHBlYXJzIGF0IHRoZQogICBiZWdpbm5pbmcgb2YgdGhlICJleHRlbmQiIGJsb2NrIGFuZCBpcyBzaGFyZWQgYnkgYWxsIGV4dGVuc2lvbnMgd2l0aGluCiAgIHRoZSBibG9jay4KIC0gSnVzdCBiZWNhdXNlIGEgbG9jYXRpb24ncyBzcGFuIGlzIGEgc3Vic2V0IG9mIHNvbWUgb3RoZXIgbG9jYXRpb24ncyBzcGFuCiAgIGRvZXMgbm90IG1lYW4gdGhhdCBpdCBpcyBhIGRlc2NlbmRlbnQuICBGb3IgZXhhbXBsZSwgYSAiZ3JvdXAiIGRlZmluZXMKICAgYm90aCBhIHR5cGUgYW5kIGEgZmllbGQgaW4gYSBzaW5nbGUgZGVjbGFyYXRpb24uICBUaHVzLCB0aGUgbG9jYXRpb25zCiAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHR5cGUgYW5kIGZpZWxkIGFuZCB0aGVpciBjb21wb25lbnRzIHdpbGwgb3ZlcmxhcC4KIC0gQ29kZSB3aGljaCB0cmllcyB0byBpbnRlcnByZXQgbG9jYXRpb25zIHNob3VsZCBwcm9iYWJseSBiZSBkZXNpZ25lZCB0bwogICBpZ25vcmUgdGhvc2UgdGhhdCBpdCBkb2Vzbid0IHVuZGVyc3RhbmQsIGFzIG1vcmUgdHlwZXMgb2YgbG9jYXRpb25zIGNvdWxkCiAgIGJlIHJlY29yZGVkIGluIHRoZSBmdXR1cmUuCgoNCgUEEwIABBIEgwYCCgoNCgUEEwIABhIEgwYLEwoNCgUEEwIAARIEgwYUHAoNCgUEEwIAAxIEgwYfIAoOCgQEEwMAEgaEBgLXBgMKDQoFBBMDAAESBIQGChIKgwcKBgQTAwACABIEnAYEKhryBiBJZGVudGlmaWVzIHdoaWNoIHBhcnQgb2YgdGhlIEZpbGVEZXNjcmlwdG9yUHJvdG8gd2FzIGRlZmluZWQgYXQgdGhpcwogbG9jYXRpb24uCgogRWFjaCBlbGVtZW50IGlzIGEgZmllbGQgbnVtYmVyIG9yIGFuIGluZGV4LiAgVGhleSBmb3JtIGEgcGF0aCBmcm9tCiB0aGUgcm9vdCBGaWxlRGVzY3JpcHRvclByb3RvIHRvIHRoZSBwbGFjZSB3aGVyZSB0aGUgZGVmaW5pdGlvbi4gIEZvcgogZXhhbXBsZSwgdGhpcyBwYXRoOgogICBbIDQsIDMsIDIsIDcsIDEgXQogcmVmZXJzIHRvOgogICBmaWxlLm1lc3NhZ2VfdHlwZSgzKSAgLy8gNCwgMwogICAgICAgLmZpZWxkKDcpICAgICAgICAgLy8gMiwgNwogICAgICAgLm5hbWUoKSAgICAgICAgICAgLy8gMQogVGhpcyBpcyBiZWNhdXNlIEZpbGVEZXNjcmlwdG9yUHJvdG8ubWVzc2FnZV90eXBlIGhhcyBmaWVsZCBudW1iZXIgNDoKICAgcmVwZWF0ZWQgRGVzY3JpcHRvclByb3RvIG1lc3NhZ2VfdHlwZSA9IDQ7CiBhbmQgRGVzY3JpcHRvclByb3RvLmZpZWxkIGhhcyBmaWVsZCBudW1iZXIgMjoKICAgcmVwZWF0ZWQgRmllbGREZXNjcmlwdG9yUHJvdG8gZmllbGQgPSAyOwogYW5kIEZpZWxkRGVzY3JpcHRvclByb3RvLm5hbWUgaGFzIGZpZWxkIG51bWJlciAxOgogICBvcHRpb25hbCBzdHJpbmcgbmFtZSA9IDE7CgogVGh1cywgdGhlIGFib3ZlIHBhdGggZ2l2ZXMgdGhlIGxvY2F0aW9uIG9mIGEgZmllbGQgbmFtZS4gIElmIHdlIHJlbW92ZWQKIHRoZSBsYXN0IGVsZW1lbnQ6CiAgIFsgNCwgMywgMiwgNyBdCiB0aGlzIHBhdGggcmVmZXJzIHRvIHRoZSB3aG9sZSBmaWVsZCBkZWNsYXJhdGlvbiAoZnJvbSB0aGUgYmVnaW5uaW5nCiBvZiB0aGUgbGFiZWwgdG8gdGhlIHRlcm1pbmF0aW5nIHNlbWljb2xvbikuCgoPCgcEEwMAAgAEEgScBgQMCg8KBwQTAwACAAUSBJwGDRIKDwoHBBMDAAIAARIEnAYTFwoPCgcEEwMAAgADEgScBhobCg8KBwQTAwACAAgSBJwGHCkKEAoIBBMDAAIACAISBJwGHSgK0gIKBgQTAwACARIEowYEKhrBAiBBbHdheXMgaGFzIGV4YWN0bHkgdGhyZWUgb3IgZm91ciBlbGVtZW50czogc3RhcnQgbGluZSwgc3RhcnQgY29sdW1uLAogZW5kIGxpbmUgKG9wdGlvbmFsLCBvdGhlcndpc2UgYXNzdW1lZCBzYW1lIGFzIHN0YXJ0IGxpbmUpLCBlbmQgY29sdW1uLgogVGhlc2UgYXJlIHBhY2tlZCBpbnRvIGEgc2luZ2xlIGZpZWxkIGZvciBlZmZpY2llbmN5LiAgTm90ZSB0aGF0IGxpbmUKIGFuZCBjb2x1bW4gbnVtYmVycyBhcmUgemVyby1iYXNlZCAtLSB0eXBpY2FsbHkgeW91IHdpbGwgd2FudCB0byBhZGQKIDEgdG8gZWFjaCBiZWZvcmUgZGlzcGxheWluZyB0byBhIHVzZXIuCgoPCgcEEwMAAgEEEgSjBgQMCg8KBwQTAwACAQUSBKMGDRIKDwoHBBMDAAIBARIEowYTFwoPCgcEEwMAAgEDEgSjBhobCg8KBwQTAwACAQgSBKMGHCkKEAoIBBMDAAIBCAISBKMGHSgKpQwKBgQTAwACAhIE1AYEKRqUDCBJZiB0aGlzIFNvdXJjZUNvZGVJbmZvIHJlcHJlc2VudHMgYSBjb21wbGV0ZSBkZWNsYXJhdGlvbiwgdGhlc2UgYXJlIGFueQogY29tbWVudHMgYXBwZWFyaW5nIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIGRlY2xhcmF0aW9uIHdoaWNoIGFwcGVhciB0byBiZQogYXR0YWNoZWQgdG8gdGhlIGRlY2xhcmF0aW9uLgoKIEEgc2VyaWVzIG9mIGxpbmUgY29tbWVudHMgYXBwZWFyaW5nIG9uIGNvbnNlY3V0aXZlIGxpbmVzLCB3aXRoIG5vIG90aGVyCiB0b2tlbnMgYXBwZWFyaW5nIG9uIHRob3NlIGxpbmVzLCB3aWxsIGJlIHRyZWF0ZWQgYXMgYSBzaW5nbGUgY29tbWVudC4KCiBsZWFkaW5nX2RldGFjaGVkX2NvbW1lbnRzIHdpbGwga2VlcCBwYXJhZ3JhcGhzIG9mIGNvbW1lbnRzIHRoYXQgYXBwZWFyCiBiZWZvcmUgKGJ1dCBub3QgY29ubmVjdGVkIHRvKSB0aGUgY3VycmVudCBlbGVtZW50LiBFYWNoIHBhcmFncmFwaCwKIHNlcGFyYXRlZCBieSBlbXB0eSBsaW5lcywgd2lsbCBiZSBvbmUgY29tbWVudCBlbGVtZW50IGluIHRoZSByZXBlYXRlZAogZmllbGQuCgogT25seSB0aGUgY29tbWVudCBjb250ZW50IGlzIHByb3ZpZGVkOyBjb21tZW50IG1hcmtlcnMgKGUuZy4gLy8pIGFyZQogc3RyaXBwZWQgb3V0LiAgRm9yIGJsb2NrIGNvbW1lbnRzLCBsZWFkaW5nIHdoaXRlc3BhY2UgYW5kIGFuIGFzdGVyaXNrCiB3aWxsIGJlIHN0cmlwcGVkIGZyb20gdGhlIGJlZ2lubmluZyBvZiBlYWNoIGxpbmUgb3RoZXIgdGhhbiB0aGUgZmlyc3QuCiBOZXdsaW5lcyBhcmUgaW5jbHVkZWQgaW4gdGhlIG91dHB1dC4KCiBFeGFtcGxlczoKCiAgIG9wdGlvbmFsIGludDMyIGZvbyA9IDE7ICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIGZvby4KICAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBiYXIuCiAgIG9wdGlvbmFsIGludDMyIGJhciA9IDI7CgogICBvcHRpb25hbCBzdHJpbmcgYmF6ID0gMzsKICAgLy8gQ29tbWVudCBhdHRhY2hlZCB0byBiYXouCiAgIC8vIEFub3RoZXIgbGluZSBhdHRhY2hlZCB0byBiYXouCgogICAvLyBDb21tZW50IGF0dGFjaGVkIHRvIHF1eC4KICAgLy8KICAgLy8gQW5vdGhlciBsaW5lIGF0dGFjaGVkIHRvIHF1eC4KICAgb3B0aW9uYWwgZG91YmxlIHF1eCA9IDQ7CgogICAvLyBEZXRhY2hlZCBjb21tZW50IGZvciBjb3JnZS4gVGhpcyBpcyBub3QgbGVh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IFRoZSBlbmQgb2Zmc2V0IHNob3VsZCBiZSBvbmUgcGFzdAogdGhlIGxhc3QgcmVsZXZhbnQgYnl0ZSAoc28gdGhlIGxlbmd0aCBvZiB0aGUgdGV4dCA9IGVuZCAtIGJlZ2luKS4KCg8KBwQUAwACAwQSBPAGBAwKDwoHBBQDAAIDBRIE8AYNEgoPCgcEFAMAAgMBEgTwBhMWCg8KBwQUAwACAwMSBPAGGRoK5wgKHGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8SCmdvb2dsZS5hcGkaFWdvb2dsZS9hcGkvaHR0cC5wcm90bxogZ29vZ2xlL3Byb3RvYnVmL2Rlc2NyaXB0b3IucHJvdG86SwoEaHR0cBIeLmdvb2dsZS5wcm90b2J1Zi5NZXRob2RPcHRpb25zGLDKvCIgASgLMhQuZ29vZ2xlLmFwaS5IdHRwUnVsZVIEaHR0cEJuCg5jb20uZ29vZ2xlLmFwaUIQQW5ub3RhdGlvbnNQcm90b1ABWkFnb29nbGUuZ29sYW5nLm9yZy9nZW5wcm90by9nb29nbGVhcGlzL2FwaS9hbm5vdGF0aW9uczthbm5vdGF0aW9uc6ICBEdBUElKvAYKBhIEDgAeAQrCBAoBDBIDDgASMrcEIENvcHlyaWdodCAoYykgMjAxNSwgR29vZ2xlIEluYy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9S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X2hlbGxvX2VsZW1faGVhZGVyEjQKBHR5cGUYASABKA4yIC5vcGVuZmxvd18xMy5vZnBfaGVsbG9fZWxlbV90eXBlUgR0eXBlElEKDXZlcnNpb25iaXRtYXAYAiABKAsyKS5vcGVuZmxvd18xMy5vZnBfaGVsbG9fZWxlbV92ZXJzaW9uYml0bWFwSABSDXZlcnNpb25iaXRtYXBCCQoHZWxlbWVudCI4ChxvZnBfaGVsbG9fZWxlbV92ZXJzaW9uYml0bWFwEhgKB2JpdG1hcHMYAiADKA1SB2JpdG1hcHMiSwoJb2ZwX2hlbGxvEj4KCGVsZW1lbnRzGAEgAygLMiIub3BlbmZsb3dfMTMub2ZwX2hlbGxvX2VsZW1faGVhZGVyUghlbGVtZW50cyJNChFvZnBfc3dpdGNoX2NvbmZpZxIUCgVmbGFncxgBIAEoDVIFZmxhZ3MSIgoNbWlzc19zZW5kX2xlbhgCIAEoDVILbWlzc1NlbmRMZW4iQgoNb2ZwX3RhYmxlX21vZBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIWCgZjb25maWcYAiABKA1SBmNvbmZpZyKgAgoIb2ZwX3BvcnQSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhcKB2h3X2FkZHIYAiADKA1SBmh3QWRkchISCgRuYW1lGAMgASgJUgRuYW1lEhYKBmNvbmZpZxgEIAEoDVIGY29uZmlnEhQKBXN0YXRlGAUgASgNUgVzdGF0ZRISCgRjdXJyGAYgASgNUgRjdXJyEh4KCmFkdmVydGlzZWQYByABKA1SCmFkdmVydGlzZWQSHAoJc3VwcG9ydGVkGAggASgNUglzdXBwb3J0ZWQSEgoEcGVlchgJIAEoDVIEcGVlchIdCgpjdXJyX3NwZWVkGAogASgNUgljdXJyU3BlZWQSGwoJbWF4X3NwZWVkGAsgASgNUghtYXhTcGVlZCK1AQoTb2ZwX3N3aXRjaF9mZWF0dXJlcxIfCgtkYXRhcGF0aF9pZBgBIAEoBFIKZGF0YXBhdGhJZBIbCgluX2J1ZmZlcnMYAiABKA1SCG5CdWZmZXJzEhkKCG5fdGFibGVzGAMgASgNUgduVGFibGVzEiEKDGF1eGlsaWFyeV9pZBgEIAEoDVILYXV4aWxpYXJ5SWQSIgoMY2FwYWJpbGl0aWVzGAUgASgNUgxjYXBhYmlsaXRpZXMicgoPb2ZwX3BvcnRfc3RhdHVzEjQKBnJlYXNvbhgBIAEoDjIcLm9wZW5mbG93XzEzLm9mcF9wb3J0X3JlYXNvblIGcmVhc29uEikKBGRlc2MYAiABKAsyFS5vcGVuZmxvd18xMy5vZnBfcG9ydFIEZGVzYyJPChFvZnBfZGV2aWNlX3N0YXR1cxI6CgZzdGF0dXMYASABKA4yIi5vcGVuZmxvd18xMy5vZnBfZGV2aWNlX2Nvbm5lY3Rpb25SBnN0YXR1cyKKAQoMb2ZwX3BvcnRfbW9kEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIXCgdod19hZGRyGAIgAygNUgZod0FkZHISFgoGY29uZmlnGAMgASgNUgZjb25maWcSEgoEbWFzaxgEIAEoDVIEbWFzaxIcCglhZHZlcnRpc2UYBSABKA1SCWFkdmVydGlzZSJ3CglvZnBfbWF0Y2gSLwoEdHlwZRgBIAEoDjIbLm9wZW5mbG93XzEzLm9mcF9tYXRjaF90eXBlUgR0eXBlEjkKCm94bV9maWVsZHMYAiADKAsyGi5vcGVuZmxvd18xMy5vZnBfb3htX2ZpZWxkUglveG1GaWVsZHMi6gEKDW9mcF9veG1fZmllbGQSNwoJb3htX2NsYXNzGAEgASgOMhoub3BlbmZsb3dfMTMub2ZwX294bV9jbGFzc1IIb3htQ2xhc3MSPQoJb2ZiX2ZpZWxkGAQgASgLMh4ub3BlbmZsb3dfMTMub2ZwX294bV9vZmJfZmllbGRIAFIIb2ZiRmllbGQSWAoSZXhwZXJpbWVudGVyX2ZpZWxkGAUgASgLMicub3BlbmZsb3dfMTMub2ZwX294bV9leHBlcmltZW50ZXJfZmllbGRIAFIRZXhwZXJpbWVudGVyRmllbGRCBwoFZmllbGQi1w4KEW9mcF9veG1fb2ZiX2ZpZWxkEjQKBHR5cGUYASABKA4yIC5vcGVuZmxvd18xMy5veG1fb2ZiX2ZpZWxkX3R5cGVzUgR0eXBlEhkKCGhhc19tYXNrGAIgASgIUgdoYXNNYXNrEhQKBHBvcnQYAyABKA1IAFIEcG9ydBIlCg1waHlzaWNhbF9wb3J0GAQgASgNSABSDHBoeXNpY2FsUG9ydBInCg50YWJsZV9tZXRhZGF0YRgFIAEoBEgAUg10YWJsZU1ldGFkYXRhEhkKB2V0aF9kc3QYBiABKAxIAFIGZXRoRHN0EhkKB2V0aF9zcmMYByABKAxIAFIGZXRoU3JjEhsKCGV0aF90eXBlGAggASgNSABSB2V0aFR5cGUSGwoIdmxhbl92aWQYCSABKA1IAFIHdmxhblZpZBIbCgh2bGFuX3BjcBgKIAEoDUgAUgd2bGFuUGNwEhkKB2lwX2RzY3AYCyABKA1IAFIGaXBEc2NwEhcKBmlwX2VjbhgMIAEoDUgAUgVpcEVjbhIbCghpcF9wcm90bxgNIAEoDUgAUgdpcFByb3RvEhsKCGlwdjRfc3JjGA4gASgNSABSB2lwdjRTcmMSGwoIaXB2NF9kc3QYDyABKA1IAFIHaXB2NERzdBIZCgd0Y3Bfc3JjGBAgASgNSABSBnRjcFNyYxIZCgd0Y3BfZHN0GBEgASgNSABSBnRjcERzdBIZCgd1ZHBfc3JjGBIgASgNSABSBnVkcFNyYxIZCgd1ZHBfZHN0GBMgASgNSABSBnVkcERzdBIbCghzY3RwX3NyYxgUIAEoDUgAUgdzY3RwU3JjEhsKCHNjdHBfZHN0GBUgASgNSABSB3NjdHBEc3QSIQoLaWNtcHY0X3R5cGUYFiABKA1IAFIKaWNtcHY0VHlwZRIhCgtpY21wdjRfY29kZRgXIAEoDUgAUgppY21wdjRDb2RlEhcKBmFycF9vcBgYIAEoDUgAUgVhcnBPcBIZCgdhcnBfc3BhGBkgASgNSABSBmFycFNwYRIZCgdhcnBfdHBhGBogASgNSABSBmFycFRwYRIZCgdhcnBfc2hhGBsgASgMSABSBmFycFNoYRIZCgdhcnBfdGhhGBwgASgMSABSBmFycFRoYRIbCghpcHY2X3NyYxgdIAEoDEgAUgdpcHY2U3JjEhsKCGlwdjZfZHN0GB4gASgMSABSB2lwdjZEc3QSIQoLaXB2Nl9mbGFiZWwYHyABKA1IAFIKaXB2NkZsYWJlbBIhCgtpY21wdjZfdHlwZRggIAEoDUgAUgppY21wdjZUeXBlEiEKC2ljbXB2Nl9jb2RlGCEgASgNSABSCmljbXB2NkNvZGUSJgoOaXB2Nl9uZF90YXJnZXQYIiABKAxIAFIMaXB2Nk5kVGFyZ2V0EiAKC2lwdjZfbmRfc3NsGCMgASgMSABSCWlwdjZOZFNzbBIgCgtpcHY2X25kX3RsbBgkIAEoDEgAUglpcHY2TmRUbGwSHwoKbXBsc19sYWJlbBglIAEoDUgAUgltcGxzTGFiZWwSGQoHbXBsc190YxgmIAEoDUgAUgZtcGxzVGMSGwoIbXBsc19ib3MYJyABKA1IAFIHbXBsc0JvcxIbCghwYmJfaXNpZBgoIAEoDUgAUgdwYmJJc2lkEh0KCXR1bm5lbF9pZBgpIAEoBEgAUgh0dW5uZWxJZBIhCgtpcHY2X2V4dGhkchgqIAEoDUgAUgppcHY2RXh0aGRyEjAKE3RhYmxlX21ldGFkYXRhX21hc2sYaSABKARIAVIRdGFibGVNZXRhZGF0YU1hc2sSIgoMZXRoX2RzdF9tYXNrGGogASgMSAFSCmV0aERzdE1hc2sSIgoMZXRoX3NyY19tYXNrGGsgASgMSAFSCmV0aFNyY01hc2sSJAoNdmxhbl92aWRfbWFzaxhtIAEoDUgBUgt2bGFuVmlkTWFzaxIkCg1pcHY0X3NyY19tYXNrGHIgASgNSAFSC2lwdjRTcmNNYXNrEiQKDWlwdjRfZHN0X21hc2sYcyABKA1IAVILaXB2NERzdE1hc2sSIgoMYXJwX3NwYV9tYXNrGH0gASgNSAFSCmFycFNwYU1hc2sSIgoMYXJwX3RwYV9tYXNrGH4gASgNSAFSCmFycFRwYU1hc2sSJQoNaXB2Nl9zcmNfbWFzaxiBASABKAxIAVILaXB2NlNyY01hc2sSJQoNaXB2Nl9kc3RfbWFzaxiCASABKAxIAVILaXB2NkRzdE1hc2sSKwoQaXB2Nl9mbGFiZWxfbWFzaxiDASABKA1IAVIOaXB2NkZsYWJlbE1hc2sSJQoNcGJiX2lzaWRfbWFzaxiMASABKA1IAVILcGJiSXNpZE1hc2sSJwoOdHVubmVsX2lkX21hc2sYjQEgASgESAFSDHR1bm5lbElkTWFzaxIrChBpcHY2X2V4dGhkcl9tYXNrGI4BIAEoDUgBUg5pcHY2RXh0aGRyTWFza0IHCgV2YWx1ZUIGCgRtYXNrIl8KGm9mcF9veG1fZXhwZXJpbWVudGVyX2ZpZWxkEh0KCm94bV9oZWFkZXIYASABKA1SCW94bUhlYWRlchIiCgxleHBlcmltZW50ZXIYAiABKA1SDGV4cGVyaW1lbnRlciKyBAoKb2ZwX2FjdGlvbhIwCgR0eXBlGAEgASgOMhwub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl90eXBlUgR0eXBlEjgKBm91dHB1dBgCIAEoCzIeLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fb3V0cHV0SABSBm91dHB1dBI9CghtcGxzX3R0bBgDIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fbXBsc190dGxIAFIHbXBsc1R0bBIyCgRwdXNoGAQgASgLMhwub3BlbmZsb3dfMTMub2ZwX2FjdGlvbl9wdXNoSABSBHB1c2gSPQoIcG9wX21wbHMYBSABKAsyIC5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX3BvcF9tcGxzSABSB3BvcE1wbHMSNQoFZ3JvdXAYBiABKAsyHS5vcGVuZmxvd18xMy5vZnBfYWN0aW9uX2dyb3VwSABSBWdyb3VwEjcKBm53X3R0bBgHIAEoCzIeLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fbndfdHRsSABSBW53VHRsEkAKCXNldF9maWVsZBgIIAEoCzIhLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fc2V0X2ZpZWxkSABSCHNldEZpZWxkEkoKDGV4cGVyaW1lbnRlchgJIAEoCzIkLm9wZW5mbG93XzEzLm9mcF9hY3Rpb25fZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIICgZhY3Rpb24iQAoRb2ZwX2FjdGlvbl9vdXRwdXQSEgoEcG9ydBgBIAEoDVIEcG9ydBIXCgdtYXhfbGVuGAIgASgNUgZtYXhMZW4iMAoTb2ZwX2FjdGlvbl9tcGxzX3R0bBIZCghtcGxzX3R0bBgBIAEoDVIHbXBsc1R0bCIvCg9vZnBfYWN0aW9uX3B1c2gSHAoJZXRoZXJ0eXBlGAEgASgNUglldGhlcnR5cGUiMwoTb2ZwX2FjdGlvbl9wb3BfbXBscxIcCglldGhlcnR5cGUYASABKA1SCWV0aGVydHlwZSItChBvZnBfYWN0aW9uX2dyb3VwEhkKCGdyb3VwX2lkGAEgASgNUgdncm91cElkIioKEW9mcF9hY3Rpb25fbndfdHRsEhUKBm53X3R0bBgBIAEoDVIFbndUdGwiSAoUb2ZwX2FjdGlvbl9zZXRfZmllbGQSMAoFZmllbGQYASABKAsyGi5vcGVuZmxvd18xMy5vZnBfb3htX2ZpZWxkUgVmaWVsZCJRChdvZnBfYWN0aW9uX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAIgASgMUgRkYXRhIpwDCg9vZnBfaW5zdHJ1Y3Rpb24SEgoEdHlwZRgBIAEoDVIEdHlwZRJICgpnb3RvX3RhYmxlGAIgASgLMicub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX2dvdG9fdGFibGVIAFIJZ290b1RhYmxlElQKDndyaXRlX21ldGFkYXRhGAMgASgLMisub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX3dyaXRlX21ldGFkYXRhSABSDXdyaXRlTWV0YWRhdGESQAoHYWN0aW9ucxgEIAEoCzIkLm9wZW5mbG93XzEzLm9mcF9pbnN0cnVjdGlvbl9hY3Rpb25zSABSB2FjdGlvbnMSOgoFbWV0ZXIYBSABKAsyIi5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25fbWV0ZXJIAFIFbWV0ZXISTwoMZXhwZXJpbWVudGVyGAYgASgLMikub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uX2V4cGVyaW1lbnRlckgAUgxleHBlcmltZW50ZXJCBgoEZGF0YSI3ChpvZnBfaW5zdHJ1Y3Rpb25fZ290b190YWJsZRIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZCJhCh5vZnBfaW5zdHJ1Y3Rpb25fd3JpdGVfbWV0YWRhdGESGgoIbWV0YWRhdGEYASABKARSCG1ldGFkYXRhEiMKDW1ldGFkYXRhX21hc2sYAiABKARSDG1ldGFkYXRhTWFzayJMChdvZnBfaW5zdHJ1Y3Rpb25fYWN0aW9ucxIxCgdhY3Rpb25zGAEgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucyIyChVvZnBfaW5zdHJ1Y3Rpb25fbWV0ZXISGQoIbWV0ZXJfaWQYASABKA1SB21ldGVySWQiVgocb2ZwX2luc3RydWN0aW9uX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlchISCgRkYXRhGAIgASgMUgRkYXRhItwDCgxvZnBfZmxvd19tb2QSFgoGY29va2llGAEgASgEUgZjb29raWUSHwoLY29va2llX21hc2sYAiABKARSCmNvb2tpZU1hc2sSGQoIdGFibGVfaWQYAyABKA1SB3RhYmxlSWQSOwoHY29tbWFuZBgEIAEoDjIhLm9wZW5mbG93XzEzLm9mcF9mbG93X21vZF9jb21tYW5kUgdjb21tYW5kEiEKDGlkbGVfdGltZW91dBgFIAEoDVILaWRsZVRpbWVvdXQSIQoMaGFyZF90aW1lb3V0GAYgASgNUgtoYXJkVGltZW91dBIaCghwcmlvcml0eRgHIAEoDVIIcHJpb3JpdHkSGwoJYnVmZmVyX2lkGAggASgNUghidWZmZXJJZBIZCghvdXRfcG9ydBgJIAEoDVIHb3V0UG9ydBIbCglvdXRfZ3JvdXAYCiABKA1SCG91dEdyb3VwEhQKBWZsYWdzGAsgASgNUgVmbGFncxIsCgVtYXRjaBgMIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gSQAoMaW5zdHJ1Y3Rpb25zGA0gAygLMhwub3BlbmZsb3dfMTMub2ZwX2luc3RydWN0aW9uUgxpbnN0cnVjdGlvbnMilwEKCm9mcF9idWNrZXQSFgoGd2VpZ2h0GAEgASgNUgZ3ZWlnaHQSHQoKd2F0Y2hfcG9ydBgCIAEoDVIJd2F0Y2hQb3J0Eh8KC3dhdGNoX2dyb3VwGAMgASgNUgp3YXRjaEdyb3VwEjEKB2FjdGlvbnMYBCADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zIswBCg1vZnBfZ3JvdXBfbW9kEjwKB2NvbW1hbmQYASABKA4yIi5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfbW9kX2NvbW1hbmRSB2NvbW1hbmQSLwoEdHlwZRgCIAEoDjIbLm9wZW5mbG93XzEzLm9mcF9ncm91cF90eXBlUgR0eXBlEhkKCGdyb3VwX2lkGAMgASgNUgdncm91cElkEjEKB2J1Y2tldHMYBCADKAsyFy5vcGVuZmxvd18xMy5vZnBfYnVja2V0UgdidWNrZXRzIo0BCg5vZnBfcGFja2V0X291dBIbCglidWZmZXJfaWQYASABKA1SCGJ1ZmZlcklkEhcKB2luX3BvcnQYAiABKA1SBmluUG9ydBIxCgdhY3Rpb25zGAMgAygLMhcub3BlbmZsb3dfMTMub2ZwX2FjdGlvblIHYWN0aW9ucxISCgRkYXRhGAQgASgMUgRkYXRhItwBCg1vZnBfcGFja2V0X2luEhsKCWJ1ZmZlcl9pZBgBIAEoDVIIYnVmZmVySWQSOQoGcmVhc29uGAIgASgOMiEub3BlbmZsb3dfMTMub2ZwX3BhY2tldF9pbl9yZWFzb25SBnJlYXNvbhIZCgh0YWJsZV9pZBgDIAEoDVIHdGFibGVJZBIWCgZjb29raWUYBCABKARSBmNvb2tpZRIsCgVtYXRjaBgFIAEoCzIWLm9wZW5mbG93XzEzLm9mcF9tYXRjaFIFbWF0Y2gSEgoEZGF0YRgGIAEoDFIEZGF0YSKdAwoQb2ZwX2Zsb3dfcmVtb3ZlZBIWCgZjb29raWUYASABKARSBmNvb2tpZRIaCghwcmlvcml0eRgCIAEoDVIIcHJpb3JpdHkSPAoGcmVhc29uGAMgASgOMiQub3BlbmZsb3dfMTMub2ZwX2Zsb3dfcmVtb3ZlZF9yZWFzb25SBnJlYXNvbhIZCgh0YWJsZV9pZBgEIAEoDVIHdGFibGVJZBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxIhCgxpZGxlX3RpbWVvdXQYByABKA1SC2lkbGVUaW1lb3V0EiEKDGhhcmRfdGltZW91dBgIIAEoDVILaGFyZFRpbWVvdXQSIQoMcGFja2V0X2NvdW50GAkgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAogASgEUglieXRlQ291bnQSLAoFbWF0Y2gYeSABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoItwCChVvZnBfbWV0ZXJfYmFuZF9oZWFkZXISNAoEdHlwZRgBIAEoDjIgLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX3R5cGVSBHR5cGUSEgoEcmF0ZRgCIAEoDVIEcmF0ZRIdCgpidXJzdF9zaXplGAMgASgNUglidXJzdFNpemUSNgoEZHJvcBgEIAEoCzIgLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2Ryb3BIAFIEZHJvcBJKCgtkc2NwX3JlbWFyaxgFIAEoCzInLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2RzY3BfcmVtYXJrSABSCmRzY3BSZW1hcmsSTgoMZXhwZXJpbWVudGVyGAYgASgLMigub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIGCgRkYXRhIhUKE29mcF9tZXRlcl9iYW5kX2Ryb3AiOwoab2ZwX21ldGVyX2JhbmRfZHNjcF9yZW1hcmsSHQoKcHJlY19sZXZlbBgBIAEoDVIJcHJlY0xldmVsIkEKG29mcF9tZXRlcl9iYW5kX2V4cGVyaW1lbnRlchIiCgxleHBlcmltZW50ZXIYASABKA1SDGV4cGVyaW1lbnRlciK4AQoNb2ZwX21ldGVyX21vZBI8Cgdjb21tYW5kGAEgASgOMiIub3BlbmZsb3dfMTMub2ZwX21ldGVyX21vZF9jb21tYW5kUgdjb21tYW5kEhQKBWZsYWdzGAIgASgNUgVmbGFncxIZCghtZXRlcl9pZBgDIAEoDVIHbWV0ZXJJZBI4CgViYW5kcxgEIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2hlYWRlclIFYmFuZHMifAoNb2ZwX2Vycm9yX21zZxIvCgZoZWFkZXIYASABKAsyFy5vcGVuZmxvd18xMy5vZnBfaGVhZGVyUgZoZWFkZXISEgoEdHlwZRgCIAEoDVIEdHlwZRISCgRjb2RlGAMgASgNUgRjb2RlEhIKBGRhdGEYBCABKAxSBGRhdGEigwEKGm9mcF9lcnJvcl9leHBlcmltZW50ZXJfbXNnEhIKBHR5cGUYASABKA1SBHR5cGUSGQoIZXhwX3R5cGUYAiABKA1SB2V4cFR5cGUSIgoMZXhwZXJpbWVudGVyGAMgASgNUgxleHBlcmltZW50ZXISEgoEZGF0YRgEIAEoDFIEZGF0YSJ2ChVvZnBfbXVsdGlwYXJ0X3JlcXVlc3QSMwoEdHlwZRgBIAEoDjIfLm9wZW5mbG93XzEzLm9mcF9tdWx0aXBhcnRfdHlwZVIEdHlwZRIUCgVmbGFncxgCIAEoDVIFZmxhZ3MSEgoEYm9keRgDIAEoDFIEYm9keSJ0ChNvZnBfbXVsdGlwYXJ0X3JlcGx5EjMKBHR5cGUYASABKA4yHy5vcGVuZmxvd18xMy5vZnBfbXVsdGlwYXJ0X3R5cGVSBHR5cGUSFAoFZmxhZ3MYAiABKA1SBWZsYWdzEhIKBGJvZHkYAyABKAxSBGJvZHkijwEKCG9mcF9kZXNjEhkKCG1mcl9kZXNjGAEgASgJUgdtZnJEZXNjEhcKB2h3X2Rlc2MYAiABKAlSBmh3RGVzYxIXCgdzd19kZXNjGAMgASgJUgZzd0Rlc2MSHQoKc2VyaWFsX251bRgEIAEoCVIJc2VyaWFsTnVtEhcKB2RwX2Rlc2MYBSABKAlSBmRwRGVzYyLSAQoWb2ZwX2Zsb3dfc3RhdHNfcmVxdWVzdBIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBIZCghvdXRfcG9ydBgCIAEoDVIHb3V0UG9ydBIbCglvdXRfZ3JvdXAYAyABKA1SCG91dEdyb3VwEhYKBmNvb2tpZRgEIAEoBFIGY29va2llEh8KC2Nvb2tpZV9tYXNrGAUgASgEUgpjb29raWVNYXNrEiwKBW1hdGNoGAYgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaCLFAwoOb2ZwX2Zsb3dfc3RhdHMSDgoCaWQYDiABKARSAmlkEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEiEKDGR1cmF0aW9uX3NlYxgCIAEoDVILZHVyYXRpb25TZWMSIwoNZHVyYXRpb25fbnNlYxgDIAEoDVIMZHVyYXRpb25Oc2VjEhoKCHByaW9yaXR5GAQgASgNUghwcmlvcml0eRIhCgxpZGxlX3RpbWVvdXQYBSABKA1SC2lkbGVUaW1lb3V0EiEKDGhhcmRfdGltZW91dBgGIAEoDVILaGFyZFRpbWVvdXQSFAoFZmxhZ3MYByABKA1SBWZsYWdzEhYKBmNvb2tpZRgIIAEoBFIGY29va2llEiEKDHBhY2tldF9jb3VudBgJIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgKIAEoBFIJYnl0ZUNvdW50EiwKBW1hdGNoGAwgASgLMhYub3BlbmZsb3dfMTMub2ZwX21hdGNoUgVtYXRjaBJACgxpbnN0cnVjdGlvbnMYDSADKAsyHC5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25SDGluc3RydWN0aW9ucyLXAQobb2ZwX2FnZ3JlZ2F0ZV9zdGF0c19yZXF1ZXN0EhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEhkKCG91dF9wb3J0GAIgASgNUgdvdXRQb3J0EhsKCW91dF9ncm91cBgDIAEoDVIIb3V0R3JvdXASFgoGY29va2llGAQgASgEUgZjb29raWUSHwoLY29va2llX21hc2sYBSABKARSCmNvb2tpZU1hc2sSLAoFbWF0Y2gYBiABKAsyFi5vcGVuZmxvd18xMy5vZnBfbWF0Y2hSBW1hdGNoInwKGW9mcF9hZ2dyZWdhdGVfc3RhdHNfcmVwbHkSIQoMcGFja2V0X2NvdW50GAEgASgEUgtwYWNrZXRDb3VudBIdCgpieXRlX2NvdW50GAIgASgEUglieXRlQ291bnQSHQoKZmxvd19jb3VudBgDIAEoDVIJZmxvd0NvdW50Iu0DChpvZnBfdGFibGVfZmVhdHVyZV9wcm9wZXJ0eRI8CgR0eXBlGAEgASgOMigub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF90eXBlUgR0eXBlElYKDGluc3RydWN0aW9ucxgCIAEoCzIwLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfaW5zdHJ1Y3Rpb25zSABSDGluc3RydWN0aW9ucxJSCgtuZXh0X3RhYmxlcxgDIAEoCzIvLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfbmV4dF90YWJsZXNIAFIKbmV4dFRhYmxlcxJHCgdhY3Rpb25zGAQgASgLMisub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9hY3Rpb25zSABSB2FjdGlvbnMSOwoDb3htGAUgASgLMicub3BlbmZsb3dfMTMub2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9veG1IAFIDb3htElYKDGV4cGVyaW1lbnRlchgGIAEoCzIwLm9wZW5mbG93XzEzLm9mcF90YWJsZV9mZWF0dXJlX3Byb3BfZXhwZXJpbWVudGVySABSDGV4cGVyaW1lbnRlckIHCgV2YWx1ZSJnCiNvZnBfdGFibGVfZmVhdHVyZV9wcm9wX2luc3RydWN0aW9ucxJACgxpbnN0cnVjdGlvbnMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfaW5zdHJ1Y3Rpb25SDGluc3RydWN0aW9ucyJKCiJvZnBfdGFibGVfZmVhdHVyZV9wcm9wX25leHRfdGFibGVzEiQKDm5leHRfdGFibGVfaWRzGAEgAygNUgxuZXh0VGFibGVJZHMiUwoeb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9hY3Rpb25zEjEKB2FjdGlvbnMYASADKAsyFy5vcGVuZmxvd18xMy5vZnBfYWN0aW9uUgdhY3Rpb25zIjUKGm9mcF90YWJsZV9mZWF0dXJlX3Byb3Bfb3htEhcKB294bV9pZHMYAyADKA1SBm94bUlkcyKRAQojb2ZwX3RhYmxlX2ZlYXR1cmVfcHJvcF9leHBlcmltZW50ZXISIgoMZXhwZXJpbWVudGVyGAIgASgNUgxleHBlcmltZW50ZXISGQoIZXhwX3R5cGUYAyABKA1SB2V4cFR5cGUSKwoRZXhwZXJpbWVudGVyX2RhdGEYBCADKA1SEGV4cGVyaW1lbnRlckRhdGEikwIKEm9mcF90YWJsZV9mZWF0dXJlcxIZCgh0YWJsZV9pZBgBIAEoDVIHdGFibGVJZBISCgRuYW1lGAIgASgJUgRuYW1lEiUKDm1ldGFkYXRhX21hdGNoGAMgASgEUg1tZXRhZGF0YU1hdGNoEiUKDm1ldGFkYXRhX3dyaXRlGAQgASgEUg1tZXRhZGF0YVdyaXRlEhYKBmNvbmZpZxgFIAEoDVIGY29uZmlnEh8KC21heF9lbnRyaWVzGAYgASgNUgptYXhFbnRyaWVzEkcKCnByb3BlcnRpZXMYByADKAsyJy5vcGVuZmxvd18xMy5vZnBfdGFibGVfZmVhdHVyZV9wcm9wZXJ0eVIKcHJvcGVydGllcyKXAQoPb2ZwX3RhYmxlX3N0YXRzEhkKCHRhYmxlX2lkGAEgASgNUgd0YWJsZUlkEiEKDGFjdGl2ZV9jb3VudBgCIAEoDVILYWN0aXZlQ291bnQSIQoMbG9va3VwX2NvdW50GAMgASgEUgtsb29rdXBDb3VudBIjCg1tYXRjaGVkX2NvdW50GAQgASgEUgxtYXRjaGVkQ291bnQiMQoWb2ZwX3BvcnRfc3RhdHNfcmVxdWVzdBIXCgdwb3J0X25vGAEgASgNUgZwb3J0Tm8i3QMKDm9mcF9wb3J0X3N0YXRzEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIdCgpyeF9wYWNrZXRzGAIgASgEUglyeFBhY2tldHMSHQoKdHhfcGFja2V0cxgDIAEoBFIJdHhQYWNrZXRzEhkKCHJ4X2J5dGVzGAQgASgEUgdyeEJ5dGVzEhkKCHR4X2J5dGVzGAUgASgEUgd0eEJ5dGVzEh0KCnJ4X2Ryb3BwZWQYBiABKARSCXJ4RHJvcHBlZBIdCgp0eF9kcm9wcGVkGAcgASgEUgl0eERyb3BwZWQSGwoJcnhfZXJyb3JzGAggASgEUghyeEVycm9ycxIbCgl0eF9lcnJvcnMYCSABKARSCHR4RXJyb3JzEiAKDHJ4X2ZyYW1lX2VychgKIAEoBFIKcnhGcmFtZUVychIeCgtyeF9vdmVyX2VychgLIAEoBFIJcnhPdmVyRXJyEhwKCnJ4X2NyY19lcnIYDCABKARSCHJ4Q3JjRXJyEh4KCmNvbGxpc2lvbnMYDSABKARSCmNvbGxpc2lvbnMSIQoMZHVyYXRpb25fc2VjGA4gASgNUgtkdXJhdGlvblNlYxIjCg1kdXJhdGlvbl9uc2VjGA8gASgNUgxkdXJhdGlvbk5zZWMiNAoXb2ZwX2dyb3VwX3N0YXRzX3JlcXVlc3QSGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQiVgoSb2ZwX2J1Y2tldF9jb3VudGVyEiEKDHBhY2tldF9jb3VudBgBIAEoBFILcGFja2V0Q291bnQSHQoKYnl0ZV9jb3VudBgCIAEoBFIJYnl0ZUNvdW50IpcCCg9vZnBfZ3JvdXBfc3RhdHMSGQoIZ3JvdXBfaWQYASABKA1SB2dyb3VwSWQSGwoJcmVmX2NvdW50GAIgASgNUghyZWZDb3VudBIhCgxwYWNrZXRfY291bnQYAyABKARSC3BhY2tldENvdW50Eh0KCmJ5dGVfY291bnQYBCABKARSCWJ5dGVDb3VudBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxJCCgxidWNrZXRfc3RhdHMYByADKAsyHy5vcGVuZmxvd18xMy5vZnBfYnVja2V0X2NvdW50ZXJSC2J1Y2tldFN0YXRzIo8BCg5vZnBfZ3JvdXBfZGVzYxIvCgR0eXBlGAEgASgOMhsub3BlbmZsb3dfMTMub2ZwX2dyb3VwX3R5cGVSBHR5cGUSGQoIZ3JvdXBfaWQYAiABKA1SB2dyb3VwSWQSMQoHYnVja2V0cxgDIAMoCzIXLm9wZW5mbG93XzEzLm9mcF9idWNrZXRSB2J1Y2tldHMidgoPb2ZwX2dyb3VwX2VudHJ5Ei8KBGRlc2MYASABKAsyGy5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfZGVzY1IEZGVzYxIyCgVzdGF0cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9ncm91cF9zdGF0c1IFc3RhdHMihwEKEm9mcF9ncm91cF9mZWF0dXJlcxIUCgV0eXBlcxgBIAEoDVIFdHlwZXMSIgoMY2FwYWJpbGl0aWVzGAIgASgNUgxjYXBhYmlsaXRpZXMSHQoKbWF4X2dyb3VwcxgDIAMoDVIJbWF4R3JvdXBzEhgKB2FjdGlvbnMYBCADKA1SB2FjdGlvbnMiOAobb2ZwX21ldGVyX211bHRpcGFydF9yZXF1ZXN0EhkKCG1ldGVyX2lkGAEgASgNUgdtZXRlcklkImoKFG9mcF9tZXRlcl9iYW5kX3N0YXRzEioKEXBhY2tldF9iYW5kX2NvdW50GAEgASgEUg9wYWNrZXRCYW5kQ291bnQSJgoPYnl0ZV9iYW5kX2NvdW50GAIgASgEUg1ieXRlQmFuZENvdW50IqECCg9vZnBfbWV0ZXJfc3RhdHMSGQoIbWV0ZXJfaWQYASABKA1SB21ldGVySWQSHQoKZmxvd19jb3VudBgCIAEoDVIJZmxvd0NvdW50EiYKD3BhY2tldF9pbl9jb3VudBgDIAEoBFINcGFja2V0SW5Db3VudBIiCg1ieXRlX2luX2NvdW50GAQgASgEUgtieXRlSW5Db3VudBIhCgxkdXJhdGlvbl9zZWMYBSABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYBiABKA1SDGR1cmF0aW9uTnNlYxJACgpiYW5kX3N0YXRzGAcgAygLMiEub3BlbmZsb3dfMTMub2ZwX21ldGVyX2JhbmRfc3RhdHNSCWJhbmRTdGF0cyJ9ChBvZnBfbWV0ZXJfY29uZmlnEhQKBWZsYWdzGAEgASgNUgVmbGFncxIZCghtZXRlcl9pZBgCIAEoDVIHbWV0ZXJJZBI4CgViYW5kcxgDIAMoCzIiLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9iYW5kX2hlYWRlclIFYmFuZHMirgEKEm9mcF9tZXRlcl9mZWF0dXJlcxIbCgltYXhfbWV0ZXIYASABKA1SCG1heE1ldGVyEh0KCmJhbmRfdHlwZXMYAiABKA1SCWJhbmRUeXBlcxIiCgxjYXBhYmlsaXRpZXMYAyABKA1SDGNhcGFiaWxpdGllcxIbCgltYXhfYmFuZHMYBCABKA1SCG1heEJhbmRzEhsKCW1heF9jb2xvchgFIAEoDVIIbWF4Q29sb3IifAoPb2ZwX21ldGVyX2VudHJ5EjUKBmNvbmZpZxgBIAEoCzIdLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9jb25maWdSBmNvbmZpZxIyCgVzdGF0cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9zdGF0c1IFc3RhdHMidgohb2ZwX2V4cGVyaW1lbnRlcl9tdWx0aXBhcnRfaGVhZGVyEiIKDGV4cGVyaW1lbnRlchgBIAEoDVIMZXhwZXJpbWVudGVyEhkKCGV4cF90eXBlGAIgASgNUgdleHBUeXBlEhIKBGRhdGEYAyABKAxSBGRhdGEibAoXb2ZwX2V4cGVyaW1lbnRlcl9oZWFkZXISIgoMZXhwZXJpbWVudGVyGAEgASgNUgxleHBlcmltZW50ZXISGQoIZXhwX3R5cGUYAiABKA1SB2V4cFR5cGUSEgoEZGF0YRgDIAEoDFIEZGF0YSJFChVvZnBfcXVldWVfcHJvcF9oZWFkZXISGgoIcHJvcGVydHkYASABKA1SCHByb3BlcnR5EhAKA2xlbhgCIAEoDVIDbGVuInIKF29mcF9xdWV1ZV9wcm9wX21pbl9yYXRlEkMKC3Byb3BfaGVhZGVyGAEgASgLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wSGVhZGVyEhIKBHJhdGUYAiABKA1SBHJhdGUicgoXb2ZwX3F1ZXVlX3Byb3BfbWF4X3JhdGUSQwoLcHJvcF9oZWFkZXIYASABKAsyIi5vcGVuZmxvd18xMy5vZnBfcXVldWVfcHJvcF9oZWFkZXJSCnByb3BIZWFkZXISEgoEcmF0ZRgCIAEoDVIEcmF0ZSKaAQobb2ZwX3F1ZXVlX3Byb3BfZXhwZXJpbWVudGVyEkMKC3Byb3BfaGVhZGVyGAEgASgLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wSGVhZGVyEiIKDGV4cGVyaW1lbnRlchgCIAEoDVIMZXhwZXJpbWVudGVyEhIKBGRhdGEYAyABKAxSBGRhdGEihQEKEG9mcF9wYWNrZXRfcXVldWUSGQoIcXVldWVfaWQYASABKA1SB3F1ZXVlSWQSEgoEcG9ydBgCIAEoDVIEcG9ydBJCCgpwcm9wZXJ0aWVzGAQgAygLMiIub3BlbmZsb3dfMTMub2ZwX3F1ZXVlX3Byb3BfaGVhZGVyUgpwcm9wZXJ0aWVzIjIKHG9mcF9xdWV1ZV9nZXRfY29uZmlnX3JlcXVlc3QSEgoEcG9ydBgBIAEoDVIEcG9ydCJnChpvZnBfcXVldWVfZ2V0X2NvbmZpZ19yZXBseRISCgRwb3J0GAEgASgNUgRwb3J0EjUKBnF1ZXVlcxgCIAMoCzIdLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfcXVldWVSBnF1ZXVlcyJFChRvZnBfYWN0aW9uX3NldF9xdWV1ZRISCgR0eXBlGAEgASgNUgR0eXBlEhkKCHF1ZXVlX2lkGAMgASgNUgdxdWV1ZUlkIk0KF29mcF9xdWV1ZV9zdGF0c19yZXF1ZXN0EhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIZCghxdWV1ZV9pZBgCIAEoDVIHcXVldWVJZCLkAQoPb2ZwX3F1ZXVlX3N0YXRzEhcKB3BvcnRfbm8YASABKA1SBnBvcnRObxIZCghxdWV1ZV9pZBgCIAEoDVIHcXVldWVJZBIZCgh0eF9ieXRlcxgDIAEoBFIHdHhCeXRlcxIdCgp0eF9wYWNrZXRzGAQgASgEUgl0eFBhY2tldHMSGwoJdHhfZXJyb3JzGAUgASgEUgh0eEVycm9ycxIhCgxkdXJhdGlvbl9zZWMYBiABKA1SC2R1cmF0aW9uU2VjEiMKDWR1cmF0aW9uX25zZWMYByABKA1SDGR1cmF0aW9uTnNlYyJtChBvZnBfcm9sZV9yZXF1ZXN0EjQKBHJvbGUYASABKA4yIC5vcGVuZmxvd18xMy5vZnBfY29udHJvbGxlcl9yb2xlUgRyb2xlEiMKDWdlbmVyYXRpb25faWQYAiABKARSDGdlbmVyYXRpb25JZCKOAQoQb2ZwX2FzeW5jX2NvbmZpZxIkCg5wYWNrZXRfaW5fbWFzaxgBIAMoDVIMcGFja2V0SW5NYXNrEigKEHBvcnRfc3RhdHVzX21hc2sYAiADKA1SDnBvcnRTdGF0dXNNYXNrEioKEWZsb3dfcmVtb3ZlZF9tYXNrGAMgAygNUg9mbG93UmVtb3ZlZE1hc2siawoOTWV0ZXJNb2RVcGRhdGUSDgoCaWQYASABKAlSAmlkEjcKCW1ldGVyX21vZBgCIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9tb2RSCG1ldGVyTW9kEhAKA3hpZBgDIAEoDVIDeGlkIlAKD01ldGVyU3RhdHNSZXBseRI9CgttZXRlcl9zdGF0cxgBIAMoCzIcLm9wZW5mbG93XzEzLm9mcF9tZXRlcl9zdGF0c1IKbWV0ZXJTdGF0cyJpCg9GbG93VGFibGVVcGRhdGUSDgoCaWQYASABKAlSAmlkEjQKCGZsb3dfbW9kGAIgASgLMhkub3BlbmZsb3dfMTMub2ZwX2Zsb3dfbW9kUgdmbG93TW9kEhAKA3hpZBgDIAEoDVIDeGlkInEKFEZsb3dHcm91cFRhYmxlVXBkYXRlEg4KAmlkGAEgASgJUgJpZBI3Cglncm91cF9tb2QYAiABKAsyGi5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfbW9kUghncm91cE1vZBIQCgN4aWQYAyABKA1SA3hpZCI6CgVGbG93cxIxCgVpdGVtcxgBIAMoCzIbLm9wZW5mbG93XzEzLm9mcF9mbG93X3N0YXRzUgVpdGVtcyI8CgZNZXRlcnMSMgoFaXRlbXMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfZW50cnlSBWl0ZW1zIkAKCkZsb3dHcm91cHMSMgoFaXRlbXMYASADKAsyHC5vcGVuZmxvd18xMy5vZnBfZ3JvdXBfZW50cnlSBWl0ZW1zImkKC0Zsb3dDaGFuZ2VzEikKBnRvX2FkZBgBIAEoCzISLm9wZW5mbG93XzEzLkZsb3dzUgV0b0FkZBIvCgl0b19yZW1vdmUYAiABKAsyEi5vcGVuZmxvd18xMy5GbG93c1IIdG9SZW1vdmUirgEKEEZsb3dHcm91cENoYW5nZXMSLgoGdG9fYWRkGAEgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IFdG9BZGQSNAoJdG9fcmVtb3ZlGAIgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IIdG9SZW1vdmUSNAoJdG9fdXBkYXRlGAMgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IIdG9VcGRhdGUiUwoIUGFja2V0SW4SDgoCaWQYASABKAlSAmlkEjcKCXBhY2tldF9pbhgCIAEoCzIaLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfaW5SCHBhY2tldEluIlcKCVBhY2tldE91dBIOCgJpZBgBIAEoCVICaWQSOgoKcGFja2V0X291dBgCIAEoCzIbLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfb3V0UglwYWNrZXRPdXQi4gEKC0NoYW5nZUV2ZW50Eg4KAmlkGAEgASgJUgJpZBI/Cgtwb3J0X3N0YXR1cxgCIAEoCzIcLm9wZW5mbG93XzEzLm9mcF9wb3J0X3N0YXR1c0gAUgpwb3J0U3RhdHVzEjIKBWVycm9yGAMgASgLMhoub3BlbmZsb3dfMTMub2ZwX2Vycm9yX21zZ0gAUgVlcnJvchJFCg1kZXZpY2Vfc3RhdHVzGAQgASgLMh4ub3BlbmZsb3dfMTMub2ZwX2RldmljZV9zdGF0dXNIAFIMZGV2aWNlU3RhdHVzQgcKBWV2ZW50IkUKDEZsb3dNZXRhZGF0YRI1CgZtZXRlcnMYASADKAsyHS5vcGVuZmxvd18xMy5vZnBfbWV0ZXJfY29uZmlnUgZtZXRlcnMq1QEKC29mcF9wb3J0X25vEhAKDE9GUFBfSU5WQUxJRBAAEhAKCE9GUFBfTUFYEID+//8HEhQKDE9GUFBfSU5fUE9SVBD4////BxISCgpPRlBQX1RBQkxFEPn///8HEhMKC09GUFBfTk9STUFMEPr///8HEhIKCk9GUFBfRkxPT0QQ+////wcSEAoIT0ZQUF9BTEwQ/P///wcSFwoPT0ZQUF9DT05UUk9MTEVSEP3///8HEhIKCk9GUFBfTE9DQUwQ/v///wcSEAoIT0ZQUF9BTlkQ/////wcqyAUKCG9mcF90eXBlEg4KCk9GUFRfSEVMTE8QABIOCgpPRlBUX0VSUk9SEAESFQoRT0ZQVF9FQ0hPX1JFUVVFU1QQAhITCg9PRlBUX0VDSE9fUkVQTFkQAxIVChFPRlBUX0VYUEVSSU1FTlRFUhAEEhkKFU9GUFRfRkVBVFVSRVNfUkVRVUVTVBAFEhcKE09GUFRfRkVBVFVSRVNfUkVQTFkQBhIbChdPRlBUX0dFVF9DT05GSUdfUkVRVUVTVBAHEhkKFU9GUFRfR0VUX0NPTkZJR19SRVBMWRAIEhMKD09GUFRfU0VUX0NPTkZJRxAJEhIKDk9GUFRfUEFDS0VUX0lOEAoSFQoRT0ZQVF9GTE9XX1JFTU9WRUQQCxIUChBPRlBUX1BPUlRfU1RBVFVTEAwSEwoPT0ZQVF9QQUNLRVRfT1VUEA0SEQoNT0ZQVF9GTE9XX01PRBAOEhIKDk9GUFRfR1JPVVBfTU9EEA8SEQoNT0ZQVF9QT1JUX01PRBAQEhIKDk9GUFRfVEFCTEVfTU9EEBESGgoWT0ZQVF9NVUxUSVBBUlRfUkVRVUVTVBASEhgKFE9GUFRfTVVMVElQQVJUX1JFUExZEBMSGAoUT0ZQVF9CQVJSSUVSX1JFUVVFU1QQFBIWChJPRlBUX0JBUlJJRVJfUkVQTFkQFRIhCh1PRlBUX1FVRVVFX0dFVF9DT05GSUdfUkVRVUVTVBAWEh8KG09GUFRfUVVFVUVfR0VUX0NPTkZJR19SRVBMWRAXEhUKEU9GUFRfUk9MRV9SRVFVRVNUEBgSEwoPT0ZQVF9ST0xFX1JFUExZEBkSGgoWT0ZQVF9HRVRfQVNZTkNfUkVRVUVTVBAaEhgKFE9GUFRfR0VUX0FTWU5DX1JFUExZEBsSEgoOT0ZQVF9TRVRfQVNZTkMQHBISCg5PRlBUX01FVEVSX01PRBAdKkMKE29mcF9oZWxsb19lbGVtX3R5cGUSEgoOT0ZQSEVUX0lOVkFMSUQQABIYChRPRlBIRVRfVkVSU0lPTkJJVE1BUBABKmUKEG9mcF9jb25maWdfZmxhZ3MSFAoQT0ZQQ19GUkFHX05PUk1BTBAAEhIKDk9GUENfRlJBR19EUk9QEAESEwoPT0ZQQ19GUkFHX1JFQVNNEAISEgoOT0ZQQ19GUkFHX01BU0sQAypAChBvZnBfdGFibGVfY29uZmlnEhEKDU9GUFRDX0lOVkFMSUQQABIZChVPRlBUQ19ERVBSRUNBVEVEX01BU0sQAyo+CglvZnBfdGFibGUSEQoNT0ZQVFRfSU5WQUxJRBAAEg4KCU9GUFRUX01BWBD+ARIOCglPRlBUVF9BTEwQ/wEquwEKEG9mcF9jYXBhYmlsaXRpZXMSEAoMT0ZQQ19JTlZBTElEEAASEwoPT0ZQQ19GTE9XX1NUQVRTEAESFAoQT0ZQQ19UQUJMRV9TVEFUUxACEhMKD09GUENfUE9SVF9TVEFUUxAEEhQKEE9GUENfR1JPVVBfU1RBVFMQCBIRCg1PRlBDX0lQX1JFQVNNECASFAoQT0ZQQ19RVUVVRV9TVEFUUxBAEhYKEU9GUENfUE9SVF9CTE9DS0VEEIACKnYKD29mcF9wb3J0X2NvbmZpZxIRCg1PRlBQQ19JTlZBTElEEAASEwoPT0ZQUENfUE9SVF9ET1dOEAESEQoNT0ZQUENfTk9fUkVDVhAEEhAKDE9GUFBDX05PX0ZXRBAgEhYKEk9GUFBDX05PX1BBQ0tFVF9JThBAKlsKDm9mcF9wb3J0X3N0YXRlEhEKDU9GUFBTX0lOVkFMSUQQABITCg9PRlBQU19MSU5LX0RPV04QARIRCg1PRlBQU19CTE9DS0VEEAISDgoKT0ZQUFNfTElWRRAEKt0CChFvZnBfcG9ydF9mZWF0dXJlcxIRCg1PRlBQRl9JTlZBTElEEAASEQoNT0ZQUEZfMTBNQl9IRBABEhEKDU9GUFBGXzEwTUJfRkQQAhISCg5PRlBQRl8xMDBNQl9IRBAEEhIKDk9GUFBGXzEwME1CX0ZEEAgSEAoMT0ZQUEZfMUdCX0hEEBASEAoMT0ZQUEZfMUdCX0ZEECASEQoNT0ZQUEZfMTBHQl9GRBBAEhIKDU9GUFBGXzQwR0JfRkQQgAESEwoOT0ZQUEZfMTAwR0JfRkQQgAISEQoMT0ZQUEZfMVRCX0ZEEIAEEhAKC09GUFBGX09USEVSEIAIEhEKDE9GUFBGX0NPUFBFUhCAEBIQCgtPRlBQRl9GSUJFUhCAIBISCg1PRlBQRl9BVVRPTkVHEIBAEhEKC09GUFBGX1BBVVNFEICAARIWChBPRlBQRl9QQVVTRV9BU1lNEICAAipECg9vZnBfcG9ydF9yZWFzb24SDQoJT0ZQUFJfQUREEAASEAoMT0ZQUFJfREVMRVRFEAESEAoMT0ZQUFJfTU9ESUZZEAIqRgoVb2ZwX2RldmljZV9jb25uZWN0aW9uEhQKEE9GUERFVl9DT05ORUNURUQQABIXChNPRlBERVZfRElTQ09OTkVDVEVEEAEqMwoOb2ZwX21hdGNoX3R5cGUSEgoOT0ZQTVRfU1RBTkRBUkQQABINCglPRlBNVF9PWE0QASprCg1vZnBfb3htX2NsYXNzEhAKDE9GUFhNQ19OWE1fMBAAEhAKDE9GUFhNQ19OWE1fMRABEhsKFU9GUFhNQ19PUEVORkxPV19CQVNJQxCAgAISGQoTT0ZQWE1DX0VYUEVSSU1FTlRFUhD//wMqkAgKE294bV9vZmJfZmllbGRfdHlwZXMSFgoST0ZQWE1UX09GQl9JTl9QT1JUEAASGgoWT0ZQWE1UX09GQl9JTl9QSFlfUE9SVBABEhcKE09GUFhNVF9PRkJfTUVUQURBVEEQAhIWChJPRlBYTVRfT0ZCX0VUSF9EU1QQAxIWChJPRlBYTVRfT0ZCX0VUSF9TUkMQBBIXChNPRlBYTVRfT0ZCX0VUSF9UWVBFEAUSFwoTT0ZQWE1UX09GQl9WTEFOX1ZJRBAGEhcKE09GUFhNVF9PRkJfVkxBTl9QQ1AQBxIWChJPRlBYTVRfT0ZCX0lQX0RTQ1AQCBIVChFPRlBYTVRfT0ZCX0lQX0VDThAJEhcKE09GUFhNVF9PRkJfSVBfUFJPVE8QChIXChNPRlBYTVRfT0ZCX0lQVjRfU1JDEAsSFwoTT0ZQWE1UX09GQl9JUFY0X0RTVBAMEhYKEk9GUFhNVF9PRkJfVENQX1NSQxANEhYKEk9GUFhNVF9PRkJfVENQX0RTVBAOEhYKEk9GUFhNVF9PRkJfVURQX1NSQxAPEhYKEk9GUFhNVF9PRkJfVURQX0RTVBAQEhcKE09GUFhNVF9PRkJfU0NUUF9TUkMQERIXChNPRlBYTVRfT0ZCX1NDVFBfRFNUEBISGgoWT0ZQWE1UX09GQl9JQ01QVjRfVFlQRRATEhoKFk9GUFhNVF9PRkJfSUNNUFY0X0NPREUQFBIVChFPRlBYTVRfT0ZCX0FSUF9PUBAVEhYKEk9GUFhNVF9PRkJfQVJQX1NQQRAWEhYKEk9GUFhNVF9PRkJfQVJQX1RQQRAXEhYKEk9GUFhNVF9PRkJfQVJQX1NIQRAYEhYKEk9GUFhNVF9PRkJfQVJQX1RIQRAZEhcKE09GUFhNVF9PRkJfSVBWNl9TUkMQGhIXChNPRlBYTVRfT0ZCX0lQVjZfRFNUEBsSGgoWT0ZQWE1UX09GQl9JUFY2X0ZMQUJFTBAcEhoKFk9GUFhNVF9PRkJfSUNNUFY2X1RZUEUQHRIaChZPRlBYTVRfT0ZCX0lDTVBWNl9DT0RFEB4SHQoZT0ZQWE1UX09GQl9JUFY2X05EX1RBUkdFVBAfEhoKFk9GUFhNVF9PRkJfSVBWNl9ORF9TTEwQIBIaChZPRlBYTVRfT0ZCX0lQVjZfTkRfVExMECESGQoVT0ZQWE1UX09GQl9NUExTX0xBQkVMECISFgoST0ZQWE1UX09GQl9NUExTX1RDECMSFwoTT0ZQWE1UX09GQl9NUExTX0JPUxAkEhcKE09GUFhNVF9PRkJfUEJCX0lTSUQQJRIYChRPRlBYTVRfT0ZCX1RVTk5FTF9JRBAmEhoKFk9GUFhNVF9PRkJfSVBWNl9FWFRIRFIQJyozCgtvZnBfdmxhbl9pZBIPCgtPRlBWSURfTk9ORRAAEhMKDk9GUFZJRF9QUkVTRU5UEIAgKskBChRvZnBfaXB2NmV4dGhkcl9mbGFncxISCg5PRlBJRUhfSU5WQUxJRBAAEhEKDU9GUElFSF9OT05FWFQQARIOCgpPRlBJRUhfRVNQEAISDwoLT0ZQSUVIX0FVVEgQBBIPCgtPRlBJRUhfREVTVBAIEg8KC09GUElFSF9GUkFHEBASEQoNT0ZQSUVIX1JPVVRFUhAgEg4KCk9GUElFSF9IT1AQQBIRCgxPRlBJRUhfVU5SRVAQgAESEQoMT0ZQSUVIX1VOU0VREIACKvwCCg9vZnBfYWN0aW9uX3R5cGUSEAoMT0ZQQVRfT1VUUFVUEAASFgoST0ZQQVRfQ09QWV9UVExfT1VUEAsSFQoRT0ZQQVRfQ09QWV9UVExfSU4QDBIWChJPRlBBVF9TRVRfTVBMU19UVEwQDxIWChJPRlBBVF9ERUNfTVBMU19UVEwQEBITCg9PRlBBVF9QVVNIX1ZMQU4QERISCg5PRlBBVF9QT1BfVkxBThASEhMKD09GUEFUX1BVU0hfTVBMUxATEhIKDk9GUEFUX1BPUF9NUExTEBQSEwoPT0ZQQVRfU0VUX1FVRVVFEBUSDwoLT0ZQQVRfR1JPVVAQFhIUChBPRlBBVF9TRVRfTldfVFRMEBcSFAoQT0ZQQVRfREVDX05XX1RUTBAYEhMKD09GUEFUX1NFVF9GSUVMRBAZEhIKDk9GUEFUX1BVU0hfUEJCEBoSEQoNT0ZQQVRfUE9QX1BCQhAbEhgKEk9GUEFUX0VYUEVSSU1FTlRFUhD//wMqVgoWb2ZwX2NvbnRyb2xsZXJfbWF4X2xlbhISCg5PRlBDTUxfSU5WQUxJRBAAEhAKCk9GUENNTF9NQVgQ5f8DEhYKEE9GUENNTF9OT19CVUZGRVIQ//8DKs8BChRvZnBfaW5zdHJ1Y3Rpb25fdHlwZRIRCg1PRlBJVF9JTlZBTElEEAASFAoQT0ZQSVRfR09UT19UQUJMRRABEhgKFE9GUElUX1dSSVRFX01FVEFEQVRBEAISFwoTT0ZQSVRfV1JJVEVfQUNUSU9OUxADEhcKE09GUElUX0FQUExZX0FDVElPTlMQBBIXChNPRlBJVF9DTEVBUl9BQ1RJT05TEAUSDwoLT0ZQSVRfTUVURVIQBhIYChJPRlBJVF9FWFBFUklNRU5URVIQ//8DKnsKFG9mcF9mbG93X21vZF9jb21tYW5kEg0KCU9GUEZDX0FERBAAEhAKDE9GUEZDX01PRElGWRABEhcKE09GUEZDX01PRElGWV9TVFJJQ1QQAhIQCgxPRlBGQ19ERUxFVEUQAxIXChNPRlBGQ19ERUxFVEVfU1RSSUNUEAQqowEKEm9mcF9mbG93X21vZF9mbGFncxIRCg1PRlBGRl9JTlZBTElEEAASFwoTT0ZQRkZfU0VORF9GTE9XX1JFTRABEhcKE09GUEZGX0NIRUNLX09WRVJMQVAQAhIWChJPRlBGRl9SRVNFVF9DT1VOVFMQBBIXChNPRlBGRl9OT19QS1RfQ09VTlRTEAgSFwoTT0ZQRkZfTk9fQllUX0NPVU5UUxAQKlMKCW9mcF9ncm91cBIQCgxPRlBHX0lOVkFMSUQQABIQCghPRlBHX01BWBCA/v//BxIQCghPRlBHX0FMTBD8////BxIQCghPRlBHX0FOWRD/////BypKChVvZnBfZ3JvdXBfbW9kX2NvbW1hbmQSDQoJT0ZQR0NfQUREEAASEAoMT0ZQR0NfTU9ESUZZEAESEAoMT0ZQR0NfREVMRVRFEAIqUwoOb2ZwX2dyb3VwX3R5cGUSDQoJT0ZQR1RfQUxMEAASEAoMT0ZQR1RfU0VMRUNUEAESEgoOT0ZQR1RfSU5ESVJFQ1QQAhIMCghPRlBHVF9GRhADKlAKFG9mcF9wYWNrZXRfaW5fcmVhc29uEhEKDU9GUFJfTk9fTUFUQ0gQABIPCgtPRlBSX0FDVElPThABEhQKEE9GUFJfSU5WQUxJRF9UVEwQAiqLAQoXb2ZwX2Zsb3dfcmVtb3ZlZF9yZWFzb24SFgoST0ZQUlJfSURMRV9USU1FT1VUEAASFgoST0ZQUlJfSEFSRF9USU1FT1VUEAESEAoMT0ZQUlJfREVMRVRFEAISFgoST0ZQUlJfR1JPVVBfREVMRVRFEAMSFgoST0ZQUlJfTUVURVJfREVMRVRFEAQqbgoJb2ZwX21ldGVyEg0KCU9GUE1fWkVSTxAAEhAKCE9GUE1fTUFYEICA/P8HEhUKDU9GUE1fU0xPV1BBVEgQ/f///wcSFwoPT0ZQTV9DT05UUk9MTEVSEP7///8HEhAKCE9GUE1fQUxMEP////8HKm0KE29mcF9tZXRlcl9iYW5kX3R5cGUSEgoOT0ZQTUJUX0lOVkFMSUQQABIPCgtPRlBNQlRfRFJPUBABEhYKEk9GUE1CVF9EU0NQX1JFTUFSSxACEhkKE09GUE1CVF9FWFBFUklNRU5URVIQ//8DKkoKFW9mcF9tZXRlcl9tb2RfY29tbWFuZBINCglPRlBNQ19BREQQABIQCgxPRlBNQ19NT0RJRlkQARIQCgxPRlBNQ19ERUxFVEUQAipnCg9vZnBfbWV0ZXJfZmxhZ3MSEQoNT0ZQTUZfSU5WQUxJRBAAEg4KCk9GUE1GX0tCUFMQARIPCgtPRlBNRl9QS1RQUxACEg8KC09GUE1GX0JVUlNUEAQSDwoLT0ZQTUZfU1RBVFMQCCqkAwoOb2ZwX2Vycm9yX3R5cGUSFgoST0ZQRVRfSEVMTE9fRkFJTEVEEAASFQoRT0ZQRVRfQkFEX1JFUVVFU1QQARIUChBPRlBFVF9CQURfQUNUSU9OEAISGQoVT0ZQRVRfQkFEX0lOU1RSVUNUSU9OEAMSEwoPT0ZQRVRfQkFEX01BVENIEAQSGQoVT0ZQRVRfRkxPV19NT0RfRkFJTEVEEAUSGgoWT0ZQRVRfR1JPVVBfTU9EX0ZBSUxFRBAGEhkKFU9GUEVUX1BPUlRfTU9EX0ZBSUxFRBAHEhoKFk9GUEVUX1RBQkxFX01PRF9GQUlMRUQQCBIZChVPRlBFVF9RVUVVRV9PUF9GQUlMRUQQCRIeChpPRlBFVF9TV0lUQ0hfQ09ORklHX0ZBSUxFRBAKEh0KGU9GUEVUX1JPTEVfUkVRVUVTVF9GQUlMRUQQCxIaChZPRlBFVF9NRVRFUl9NT0RfRkFJTEVEEAwSHwobT0ZQRVRfVEFCTEVfRkVBVFVSRVNfRkFJTEVEEA0SGAoST0ZQRVRfRVhQRVJJTUVOVEVSEP//AypCChVvZnBfaGVsbG9fZmFpbGVkX2NvZGUSFwoTT0ZQSEZDX0lOQ09NUEFUSUJMRRAAEhAKDE9GUEhGQ19FUEVSTRABKu0CChRvZnBfYmFkX3JlcXVlc3RfY29kZRIWChJPRlBCUkNfQkFEX1ZFUlNJT04QABITCg9PRlBCUkNfQkFEX1RZUEUQARIYChRPRlBCUkNfQkFEX01VTFRJUEFSVBACEhsKF09GUEJSQ19CQURfRVhQRVJJTUVOVEVSEAMSFwoTT0ZQQlJDX0JBRF9FWFBfVFlQRRAEEhAKDE9GUEJSQ19FUEVSTRAFEhIKDk9GUEJSQ19CQURfTEVOEAYSFwoTT0ZQQlJDX0JVRkZFUl9FTVBUWRAHEhkKFU9GUEJSQ19CVUZGRVJfVU5LTk9XThAIEhcKE09GUEJSQ19CQURfVEFCTEVfSUQQCRITCg9PRlBCUkNfSVNfU0xBVkUQChITCg9PRlBCUkNfQkFEX1BPUlQQCxIVChFPRlBCUkNfQkFEX1BBQ0tFVBAMEiQKIE9GUEJSQ19NVUxUSVBBUlRfQlVGRkVSX09WRVJGTE9XEA0qnAMKE29mcF9iYWRfYWN0aW9uX2NvZGUSEwoPT0ZQQkFDX0JBRF9UWVBFEAASEgoOT0ZQQkFDX0JBRF9MRU4QARIbChdPRlBCQUNfQkFEX0VYUEVSSU1FTlRFUhACEhcKE09GUEJBQ19CQURfRVhQX1RZUEUQAxIXChNPRlBCQUNfQkFEX09VVF9QT1JUEAQSFwoTT0ZQQkFDX0JBRF9BUkdVTUVOVBAFEhAKDE9GUEJBQ19FUEVSTRAGEhMKD09GUEJBQ19UT09fTUFOWRAHEhQKEE9GUEJBQ19CQURfUVVFVUUQCBIYChRPRlBCQUNfQkFEX09VVF9HUk9VUBAJEh0KGU9GUEJBQ19NQVRDSF9JTkNPTlNJU1RFTlQQChIcChhPRlBCQUNfVU5TVVBQT1JURURfT1JERVIQCxISCg5PRlBCQUNfQkFEX1RBRxAMEhcKE09GUEJBQ19CQURfU0VUX1RZUEUQDRIWChJPRlBCQUNfQkFEX1NFVF9MRU4QDhIbChdPRlBCQUNfQkFEX1NFVF9BUkdVTUVOVBAPKvoBChhvZnBfYmFkX2luc3RydWN0aW9uX2NvZGUSFwoTT0ZQQklDX1VOS05PV05fSU5TVBAAEhUKEU9GUEJJQ19VTlNVUF9JTlNUEAESFwoTT0ZQQklDX0JBRF9UQUJMRV9JRBACEhkKFU9GUEJJQ19VTlNVUF9NRVRBREFUQRADEh4KGk9GUEJJQ19VTlNVUF9NRVRBREFUQV9NQVNLEAQSGwoXT0ZQQklDX0JBRF9FWFBFUklNRU5URVIQBRIXChNPRlBCSUNfQkFEX0VYUF9UWVBFEAYSEgoOT0ZQQklDX0JBRF9MRU4QBxIQCgxPRlBCSUNfRVBFUk0QCCqlAgoSb2ZwX2JhZF9tYXRjaF9jb2RlEhMKD09GUEJNQ19CQURfVFlQRRAAEhIKDk9GUEJNQ19CQURfTEVOEAESEgoOT0ZQQk1DX0JBRF9UQUcQAhIbChdPRlBCTUNfQkFEX0RMX0FERFJfTUFTSxADEhsKF09GUEJNQ19CQURfTldfQUREUl9NQVNLEAQSGAoUT0ZQQk1DX0JBRF9XSUxEQ0FSRFMQBRIUChBPRlBCTUNfQkFEX0ZJRUxEEAYSFAoQT0ZQQk1DX0JBRF9WQUxVRRAHEhMKD09GUEJNQ19CQURfTUFTSxAIEhUKEU9GUEJNQ19CQURfUFJFUkVREAkSFAoQT0ZQQk1DX0RVUF9GSUVMRBAKEhAKDE9GUEJNQ19FUEVSTRALKtIBChhvZnBfZmxvd19tb2RfZmFpbGVkX2NvZGUSEwoPT0ZQRk1GQ19VTktOT1dOEAASFgoST0ZQRk1GQ19UQUJMRV9GVUxMEAESGAoUT0ZQRk1GQ19CQURfVEFCTEVfSUQQAhITCg9PRlBGTUZDX09WRVJMQVAQAxIRCg1PRlBGTUZDX0VQRVJNEAQSFwoTT0ZQRk1GQ19CQURfVElNRU9VVBAFEhcKE09GUEZNRkNfQkFEX0NPTU1BTkQQBhIVChFPRlBGTUZDX0JBRF9GTEFHUxAHKqEDChlvZnBfZ3JvdXBfbW9kX2ZhaWxlZF9jb2RlEhgKFE9GUEdNRkNfR1JPVVBfRVhJU1RTEAASGQoVT0ZQR01GQ19JTlZBTElEX0dST1VQEAESHgoaT0ZQR01GQ19XRUlHSFRfVU5TVVBQT1JURUQQAhIZChVPRlBHTUZDX09VVF9PRl9HUk9VUFMQAxIaChZPRlBHTUZDX09VVF9PRl9CVUNLRVRTEAQSIAocT0ZQR01GQ19DSEFJTklOR19VTlNVUFBPUlRFRBAFEh0KGU9GUEdNRkNfV0FUQ0hfVU5TVVBQT1JURUQQBhIQCgxPRlBHTUZDX0xPT1AQBxIZChVPRlBHTUZDX1VOS05PV05fR1JPVVAQCBIZChVPRlBHTUZDX0NIQUlORURfR1JPVVAQCRIUChBPRlBHTUZDX0JBRF9UWVBFEAoSFwoTT0ZQR01GQ19CQURfQ09NTUFORBALEhYKEk9GUEdNRkNfQkFEX0JVQ0tFVBAMEhUKEU9GUEdNRkNfQkFEX1dBVENIEA0SEQoNT0ZQR01GQ19FUEVSTRAOKo8BChhvZnBfcG9ydF9tb2RfZmFpbGVkX2NvZGUSFAoQT0ZQUE1GQ19CQURfUE9SVBAAEhcKE09GUFBNRkNfQkFEX0hXX0FERFIQARIWChJPRlBQTUZDX0JBRF9DT05GSUcQAhIZChVPRlBQTUZDX0JBRF9BRFZFUlRJU0UQAxIRCg1PRlBQTUZDX0VQRVJNEAQqXQoZb2ZwX3RhYmxlX21vZF9mYWlsZWRfY29kZRIVChFPRlBUTUZDX0JBRF9UQUJMRRAAEhYKEk9GUFRNRkNfQkFEX0NPTkZJRxABEhEKDU9GUFRNRkNfRVBFUk0QAipaChhvZnBfcXVldWVfb3BfZmFpbGVkX2NvZGUSFAoQT0ZQUU9GQ19CQURfUE9SVBAAEhUKEU9GUFFPRkNfQkFEX1FVRVVFEAESEQoNT0ZQUU9GQ19FUEVSTRACKl4KHW9mcF9zd2l0Y2hfY29uZmlnX2ZhaWxlZF9jb2RlEhUKEU9GUFNDRkNfQkFEX0ZMQUdTEAASEwoPT0ZQU0NGQ19CQURfTEVOEAESEQoNT0ZQU0NGQ19FUEVSTRACKloKHG9mcF9yb2xlX3JlcXVlc3RfZmFpbGVkX2NvZGUSEQoNT0ZQUlJGQ19TVEFMRRAAEhEKDU9GUFJSRkNfVU5TVVAQARIUChBPRlBSUkZDX0JBRF9ST0xFEAIqxQIKGW9mcF9tZXRlcl9tb2RfZmFpbGVkX2NvZGUSEwoPT0ZQTU1GQ19VTktOT1dOEAASGAoUT0ZQTU1GQ19NRVRFUl9FWElTVFMQARIZChVPRlBNTUZDX0lOVkFMSURfTUVURVIQAhIZChVPRlBNTUZDX1VOS05PV05fTUVURVIQAxIXChNPRlBNTUZDX0JBRF9DT01NQU5EEAQSFQoRT0ZQTU1GQ19CQURfRkxBR1MQBRIUChBPRlBNTUZDX0JBRF9SQVRFEAYSFQoRT0ZQTU1GQ19CQURfQlVSU1QQBxIUChBPRlBNTUZDX0JBRF9CQU5EEAgSGwoXT0ZQTU1GQ19CQURfQkFORF9ERVRBSUwQCRIZChVPRlBNTUZDX09VVF9PRl9NRVRFUlMQChIYChRPRlBNTUZDX09VVF9PRl9CQU5EUxALKqkBCh5vZnBfdGFibGVfZmVhdHVyZXNfZmFpbGVkX2NvZGUSFQoRT0ZQVEZGQ19CQURfVEFCTEUQABIYChRPRlBURkZDX0JBRF9NRVRBREFUQRABEhQKEE9GUFRGRkNfQkFEX1RZUEUQAhITCg9PRlBURkZDX0JBRF9MRU4QAxIYChRPRlBURkZDX0JBRF9BUkdVTUVOVBAEEhEKDU9GUFRGRkNfRVBFUk0QBSrOAgoSb2ZwX211bHRpcGFydF90eXBlEg4KCk9GUE1QX0RFU0MQABIOCgpPRlBNUF9GTE9XEAESEwoPT0ZQTVBfQUdHUkVHQVRFEAISDwoLT0ZQTVBfVEFCTEUQAxIUChBPRlBNUF9QT1JUX1NUQVRTEAQSDwoLT0ZQTVBfUVVFVUUQBRIPCgtPRlBNUF9HUk9VUBAGEhQKEE9GUE1QX0dST1VQX0RFU0MQBxIYChRPRlBNUF9HUk9VUF9GRUFUVVJFUxAIEg8KC09GUE1QX01FVEVSEAkSFgoST0ZQTVBfTUVURVJfQ09ORklHEAoSGAoUT0ZQTVBfTUVURVJfRkVBVFVSRVMQCxIYChRPRlBNUF9UQUJMRV9GRUFUVVJFUxAMEhMKD09GUE1QX1BPUlRfREVTQxANEhgKEk9GUE1QX0VYUEVSSU1FTlRFUhD//wMqSgobb2ZwX211bHRpcGFydF9yZXF1ZXN0X2ZsYWdzEhYKEk9GUE1QRl9SRVFfSU5WQUxJRBAAEhMKD09GUE1QRl9SRVFfTU9SRRABKkwKGW9mcF9tdWx0aXBhcnRfcmVwbHlfZmxhZ3MSGAoUT0ZQTVBGX1JFUExZX0lOVkFMSUQQABIVChFPRlBNUEZfUkVQTFlfTU9SRRABKuQDChtvZnBfdGFibGVfZmVhdHVyZV9wcm9wX3R5cGUSGAoUT0ZQVEZQVF9JTlNUUlVDVElPTlMQABIdChlPRlBURlBUX0lOU1RSVUNUSU9OU19NSVNTEAESFwoTT0ZQVEZQVF9ORVhUX1RBQkxFUxACEhwKGE9GUFRGUFRfTkVYVF9UQUJMRVNfTUlTUxADEhkKFU9GUFRGUFRfV1JJVEVfQUNUSU9OUxAEEh4KGk9GUFRGUFRfV1JJVEVfQUNUSU9OU19NSVNTEAUSGQoVT0ZQVEZQVF9BUFBMWV9BQ1RJT05TEAYSHgoaT0ZQVEZQVF9BUFBMWV9BQ1RJT05TX01JU1MQBxIRCg1PRlBURlBUX01BVENIEAgSFQoRT0ZQVEZQVF9XSUxEQ0FSRFMQChIaChZPRlBURlBUX1dSSVRFX1NFVEZJRUxEEAwSHwobT0ZQVEZQVF9XUklURV9TRVRGSUVMRF9NSVNTEA0SGgoWT0ZQVEZQVF9BUFBMWV9TRVRGSUVMRBAOEh8KG09GUFRGUFRfQVBQTFlfU0VURklFTERfTUlTUxAPEhoKFE9GUFRGUFRfRVhQRVJJTUVOVEVSEP7/AxIfChlPRlBURlBUX0VYUEVSSU1FTlRFUl9NSVNTEP//AyqTAQoWb2ZwX2dyb3VwX2NhcGFiaWxpdGllcxISCg5PRlBHRkNfSU5WQUxJRBAAEhgKFE9GUEdGQ19TRUxFQ1RfV0VJR0hUEAESGgoWT0ZQR0ZDX1NFTEVDVF9MSVZFTkVTUxACEhMKD09GUEdGQ19DSEFJTklORxAEEhoKFk9GUEdGQ19DSEFJTklOR19DSEVDS1MQCCprChRvZnBfcXVldWVfcHJvcGVydGllcxIRCg1PRlBRVF9JTlZBTElEEAASEgoOT0ZQUVRfTUlOX1JBVEUQARISCg5PRlBRVF9NQVhfUkFURRACEhgKEk9GUFFUX0VYUEVSSU1FTlRFUhD//wMqcQoTb2ZwX2NvbnRyb2xsZXJfcm9sZRIXChNPRlBDUl9ST0xFX05PQ0hBTkdFEAASFAoQT0ZQQ1JfUk9MRV9FUVVBTBABEhUKEU9GUENSX1JPTEVfTUFTVEVSEAISFAoQT0ZQQ1JfUk9MRV9TTEFWRRADQlUKHm9yZy5vcGVuY29yZC52b2x0aGEub3BlbmZsb3cxM1ozZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL29wZW5mbG93XzEzSq+6BgoHEgU5AJkSAQr+FAoBDBIDOQASGvkGCiBUaGlzIGlzIGEgcmVsYXRpdmVseSBzdHJhaWdodGZvcndhcmQgcmVuZGVyaW5nIG9mIE9wZW5GbG93IG1lc3NhZ2UKIGRlZmluaXRpb25zIGludG8gcHJvdG9jb2wgYnVmZmVyIG1lc3NhZ2VzLiBXZSBwcmVzZXJ2ZWQgdGhlIHNuYWtlCiBjYXNlIHN5bnRheCwgYW5kIG1hZGUgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgogLSBhbGwgcGFkIGZpZWxkcyBkcm9wcGVkCiAtIGZvciBlYWNoIGVudW0gdmFsdWUgYWJvdmUgMHg3ZmZmZmZmZiB0aGUgTVNCIGlzIGRyb3BwZWQuIEZvciBleGFtcGxlLAogICAweGZmZmZmZmZmIGlzIG5vdyAweDdmZmZmZmZmLgogLSAnPHR5cGU+IHRoaW5nWy4uLl0nIGlzIHJlcGxhY2VkIHdpdGggJ3JlcGVhdGVkIDx0eXBlPiB0aGluZycKIC0gJ2NoYXIgdGhpbmdbLi4uXScgaXMgcmVwbGFjZWQgd2l0aCAnc3RyaW5nIHRoaW5nJwogLSAndWludDhfdCBkYXRhWy4uLl0nIGlzIHJlcGxhY2VkIHdpdGggJ2J5dGVzIGRhdGEnCiAtIHRoZSBmb2xsb3dpbmcgc3lzdGVtYXRpYyBjaGFuZ2VzIGFyZSBkb25lIHRvIHZhcmlvdXMgaW50ZWdlciB0eXBlczoKICAgdWludDhfdCAgLT4gdWludDMyCiAgIHVpbnQxNl90IC0+IHVpbnQzMgogICB1aW50MzJfdCAtPiB1aW50MzIKICAgdWludDY0X3QgLT4gdWludDY0CiAtIHJlbW92ZWQgbW9zdCBsZW5ndGgsIGxlbiwgc2l6ZSBmaWVsZHMgd2hlcmUgdGhlc2UgdmFsdWVzIGNhbiBiZSBkZXRlcm1pbmVkCiAgIGZyb20gdGhlIGV4cGxpY2l0bHkgZW5jb2RlZCBsZW5ndGggb2YgInJlcGVhdGVkIiBwcm90b2J1ZiBmaWVsZHMuCiAtIGV4cGxpY2l0IHVzZSBvZiBlbnVtIHR5cGVzIHdoZXJlZXZlciBpdCBpcyB1bmFtYmlnb3VzIChhbmQgbm90IHVzZWQgYXMKICAgYml0bWFzay9mbGFncyB2YWx1ZS4KCjLADSBDb3B5cmlnaHQgKGMpIDIwMDggVGhlIEJvYXJkIG9mIFRydXN0ZWVzIG9mIFRoZSBMZWxhbmQgU3RhbmZvcmQKIEp1bmlvciBVbml2ZXJzaXR5CiBDb3B5cmlnaHQgMjAxMS0yMDI0IE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uIChPTkYpIGFuZCB0aGUgT05GIENvbnRyaWJ1dG9ycwoKIFdlIGFyZSBtYWtpbmcgdGhlIE9wZW5GbG93IHNwZWNpZmljYXRpb24gYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbgogKFNvZnR3YXJlKSBhdmFpbGFibGUgZm9yIHB1YmxpYyB1c2UgYW5kIGJlbmVmaXQgd2l0aCB0aGUgZXhwZWN0YXRpb24KIHRoYXQgb3RoZXJzIHdpbGwgdXNlLCBtb2RpZnkgYW5kIGVuaGFuY2UgdGhlIFNvZnR3YXJlIGFuZCBjb250cmlidXRlCiB0aG9zZSBlbmhhbmNlbWVudHMgYmFjayB0byB0aGUgY29tbXVuaXR5LiBIb3dldmVyLCBzaW5jZSB3ZSB3b3VsZAogbGlrZSB0byBtYWtlIHRoZSBTb2Z0d2FyZSBhdmFpbGFibGUgZm9yIGJyb2FkZXN0IHVzZSwgd2l0aCBhcyBmZXcKIHJlc3RyaWN0aW9ucyBhcyBwb3NzaWJsZSBwZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mCiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIFNvZnR3YXJlIHRvIGRlYWwgaW4KIHRoZSBTb2Z0d2FyZSB1bmRlciB0aGUgY29weXJpZ2h0cyB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcKIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwKIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0bwogcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvCiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CgogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgoKIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GCiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORAogTk9OSU5GUklOR0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMKIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTgogQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4KIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUKIFNPRlRXQVJFLgoKIFRoZSBuYW1lIGFuZCB0cmFkZW1hcmtzIG9mIGNvcHlyaWdodCBob2xkZXIocykgbWF5IE5PVCBiZSB1c2VkIGluCiBhZHZlcnRpc2luZyBvciBwdWJsaWNpdHkgcGVydGFpbmluZyB0byB0aGUgU29mdHdhcmUgb3IgYW55CiBkZXJpdmF0aXZlcyB3aXRob3V0IHNwZWNpZmljLCB3cml0dGVuIHByaW9yIHBlcm1pc3Npb24uCjI1IE9wZW5GbG93OiBwcm90b2NvbCBiZXR3ZWVuIGNvbnRyb2xsZXIgYW5kIGRhdGFwYXRoLiAKCAoBCBIDOwBKCgkKAggLEgM7AEoKCAoBCBIDPAA3CgkKAggBEgM8ADcKCAoBAhIDPgAUCgkKAgMAEgNAACYKpgQKAgUAEgRUAGkBGjUgUG9ydCBudW1iZXJpbmcuIFBvcnRzIGFyZSBudW1iZXJlZCBzdGFydGluZyBmcm9tIDEuIDJjIFZlcnNpb24gbnVtYmVyOgogT3BlbkZsb3cgdmVyc2lvbnMgcmVsZWFzZWQ6IDB4MDEgPSAxLjAgOyAweDAyID0gMS4xIDsgMHgwMyA9IDEuMgogICAgIDB4MDQgPSAxLjMKMlUgVGhlIG1vc3Qgc2lnbmlmaWNhbnQgYml0IGluIHRoZSB2ZXJzaW9uIGZpZWxkIGlzIHJlc2VydmVkIGFuZCBtdXN0CiBiZSBzZXQgdG8gemVyby4KMnojZGVmaW5lIE9GUF9WRVJTSU9OICAgMHgwNAojZGVmaW5lIFBJUEVMSU5FX1RBQkxFUyA2NAojZGVmaW5lIE9GUF9NQVhfVEFCTEVfTkFNRV9MRU4gMzIKI2RlZmluZSBPRlBfTUFYX1BPUlRfTkFNRV9MRU4gIDE2CjItIE9mZmljaWFsIElBTkEgcmVnaXN0ZXJlZCBwb3J0IGZvciBPcGVuRmxvdy4gMjYjZGVmaW5lIE9GUF9UQ1BfUE9SVCAgNjY1MwojZGVmaW5lIE9GUF9TU0xfUE9SVCAgNjY1MwoyRCNkZWZpbmUgT0ZQX0VUSF9BTEVOIDYgICAgICAgICAgLyogQnl0ZXMgaW4gYW4gRXRoZXJuZXQgYWRkcmVzcy4gKi8KCgoKAwUAARIDVAUQCgsKBAUAAgASA1UEGAoMCgUFAAIAARIDVQQQCgwKBQUAAgACEgNVFhcKQwoEBQACARIDWAQhGjYgTWF4aW11bSBudW1iZXIgb2YgcGh5c2ljYWwgYW5kIGxvZ2ljYWwgc3dpdGNoIHBvcnRzLiAKDAoFBQACAQESA1gEDAoMCgUFAAIBAhIDWBYgCrwBCgQFAAICEgNbBCEaLyBSZXNlcnZlZCBPcGVuRmxvdyBQb3J0IChmYWtlIG91dHB1dCAicG9ydHMiKS4gIn4gU2VuZCB0aGUgcGFja2V0IG91dCB0aGUgaW5wdXQgcG9ydC4gIFRoaXMKcmVzZXJ2ZWQgcG9ydCBtdXN0IGJlIGV4cGxpY2l0bHkgdXNlZAppbiBvcmRlciB0byBzZW5kIGJhY2sgb3V0IG9mIHRoZSBpbnB1dApwb3J0LiAKDAoFBQACAgESA1sEEAoMCgUFAAICAhIDWxYgCnsKBAUAAgMSA18EISJuIFN1Ym1pdCB0aGUgcGFja2V0IHRvIHRoZSBmaXJzdCBmbG93IHRhYmxlCk5COiBUaGlzIGRlc3RpbmF0aW9uIHBvcnQgY2FuIG9ubHkgYmUKdXNlZCBpbiBwYWNrZXQtb3V0IG1lc3NhZ2VzLiAKDAoFBQACAwESA18EDgoMCgUFAAIDAhIDXxYgCjMKBAUAAgQSA2IEISImIEZvcndhcmQgdXNpbmcgbm9uLU9wZW5GbG93IHBpcGVsaW5lLiAKDAoFBQACBAESA2IEDwoMCgUFAAIEAhIDYhYgCjEKBAUAAgUSA2MEISIkIEZsb29kIHVzaW5nIG5vbi1PcGVuRmxvdyBwaXBlbGluZS4gCgwKBQUAAgUBEgNjBA4KDAoFBQACBQISA2MWIAo0CgQFAAIGEgNkBCEiJyBBbGwgc3RhbmRhcmQgcG9ydHMgZXhjZXB0IGlucHV0IHBvcnQuIAoMCgUFAAIGARIDZAQMCgwKBQUAAgYCEgNkFiAKIgoEBQACBxIDZQQhIhUgU2VuZCB0byBjb250cm9sbGVyLiAKDAoFBQACBwESA2UEEwoMCgUFAAIHAhIDZRYgCiUKBAUAAggSA2YEISIYIExvY2FsIG9wZW5mbG93ICJwb3J0Ii4gCgwKBQUAAggBEgNmBA4KDAoFBQACCAISA2YWIApeCgQFAAIJEgNnBCEiUSBTcGVjaWFsIHZhbHVlIHVzZWQgaW4gc29tZSByZXF1ZXN0cyB3aGVuCm5vIHBvcnQgaXMgc3BlY2lmaWVkIChpLmUuIHdpbGRjYXJkZWQpLgoMCgUFAAIJARIDZwQMCgwKBQUAAgkCEgNnFiAKCwoCBQESBWsAngEBCgoKAwUBARIDawUNCjcKBAUBAgASA24EKBoVIEltbXV0YWJsZSBtZXNzYWdlcy4gIhMgU3ltbWV0cmljIG1lc3NhZ2UgCgwKBQUBAgABEgNuBA4KDAoFBQECAAISA24mJwogCgQFAQIBEgNvBCgiEyBTeW1tZXRyaWMgbWVzc2FnZSAKDAoFBQECAQESA28EDgoMCgUFAQIBAhIDbyYnCiAKBAUBAgISA3AEKCITIFN5bW1ldHJpYyBtZXNzYWdlIAoMCgUFAQICARIDcAQVCgwKBQUBAgICEgNwJicKIAoEBQECAxIDcQQoIhMgU3ltbWV0cmljIG1lc3NhZ2UgCgwKBQUBAgMBEgNxBBMKDAoFBQECAwISA3EmJwogCgQFAQIEEgNyBCgiEyBTeW1tZXRyaWMgbWVzc2FnZSAKDAoFBQECBAESA3IEFQoMCgUFAQIEAhIDciYnCkoKBAUBAgUSA3UEKBogIFN3aXRjaCBjb25maWd1cmF0aW9uIG1lc3NhZ2VzLiAiGyBDb250cm9sbGVyL3N3aXRjaCBtZXNzYWdlIAoMCgUFAQIFARIDdQQZCgwKBQUBAgUCEgN1JicKKAoEBQECBhIDdgQoIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDAoFBQECBgESA3YEFwoMCgUFAQIGAhIDdiYnCigKBAUBAgcSA3cEKCIbIENvbnRyb2xsZXIvc3dpdGNoIG1lc3NhZ2UgCgwKBQUBAgcBEgN3BBsKDAoFBQECBwISA3cmJwooCgQFAQIIEgN4BCgiGyBDb250cm9sbGVyL3N3aXRjaCBtZXNzYWdlIAoMCgUFAQIIARIDeAQZCgwKBQUBAggCEgN4JicKKAoEBQECCRIDeQQoIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDAoFBQECCQESA3kEEwoMCgUFAQIJAhIDeSYnCjYKBAUBAgoSA3wEKRoYIEFzeW5jaHJvbm91cyBtZXNzYWdlcy4gIg8gQXN5bmMgbWVzc2FnZSAKDAoFBQECCgESA3wEEgoMCgUFAQIKAhIDfCYoChwKBAUBAgsSA30EKSIPIEFzeW5jIG1lc3NhZ2UgCgwKBQUBAgsBEgN9BBUKDAoFBQECCwISA30mKAocCgQFAQIMEgN+BCkiDyBBc3luYyBtZXNzYWdlIAoMCgUFAQIMARIDfgQUCgwKBQUBAgwCEgN+JigKSQoEBQECDRIEgQEEKRoeIENvbnRyb2xsZXIgY29tbWFuZCBtZXNzYWdlcy4gIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDQoFBQECDQESBIEBBBMKDQoFBQECDQISBIEBJigKKQoEBQECDhIEggEEKSIbIENvbnRyb2xsZXIvc3dpdGNoIG1lc3NhZ2UgCg0KBQUBAg4BEgSCAQQRCg0KBQUBAg4CEgSCASYoCikKBAUBAg8SBIMBBCkiGyBDb250cm9sbGVyL3N3aXRjaCBtZXNzYWdlIAoNCgUFAQIPARIEgwEEEgoNCgUFAQIPAhIEgwEmKAopCgQFAQIQEgSEAQQpIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDQoFBQECEAESBIQBBBEKDQoFBQECEAISBIQBJigKKQoEBQECERIEhQEEKSIbIENvbnRyb2xsZXIvc3dpdGNoIG1lc3NhZ2UgCg0KBQUBAhEBEgSFAQQSCg0KBQUBAhECEgSFASYoCkAKBAUBAhISBIgBBCkaFSBNdWx0aXBhcnQgbWVzc2FnZXMuICIbIENvbnRyb2xsZXIvc3dpdGNoIG1lc3NhZ2UgCg0KBQUBAhIBEgSIAQQaCg0KBQUBAhICEgSIASYoCikKBAUBAhMSBIkBBCkiGyBDb250cm9sbGVyL3N3aXRjaCBtZXNzYWdlIAoNCgUFAQITARIEiQEEGAoNCgUFAQITAhIEiQEmKAo+CgQFAQIUEgSMAQQpGhMgQmFycmllciBtZXNzYWdlcy4gIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDQoFBQECFAESBIwBBBgKDQoFBQECFAISBIwBJigKKQoEBQECFRIEjQEEKSIbIENvbnRyb2xsZXIvc3dpdGNoIG1lc3NhZ2UgCg0KBQUBAhUBEgSNAQQWCg0KBQUBAhUCEgSNASYoCkoKBAUBAhYSBJABBCkaHyBRdWV1ZSBDb25maWd1cmF0aW9uIG1lc3NhZ2VzLiAiGyBDb250cm9sbGVyL3N3aXRjaCBtZXNzYWdlIAoNCgUFAQIWARIEkAEEIQoNCgUFAQIWAhIEkAEmKAopCgQFAQIXEgSRAQQpIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDQoFBQECFwESBJEBBB8KDQoFBQECFwISBJEBJigKVQoEBQECGBIElAEEKRoqIENvbnRyb2xsZXIgcm9sZSBjaGFuZ2UgcmVxdWVzdCBtZXNzYWdlcy4gIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDQoFBQECGAESBJQBBBUKDQoFBQECGAISBJQBJigKKQoEBQECGRIElQEEKSIbIENvbnRyb2xsZXIvc3dpdGNoIG1lc3NhZ2UgCg0KBQUBAhkBEgSVAQQTCg0KBQUBAhkCEgSVASYoClAKBAUBAhoSBJgBBCkaJSBBc3luY2hyb25vdXMgbWVzc2FnZSBjb25maWd1cmF0aW9uLiAiGyBDb250cm9sbGVyL3N3aXRjaCBtZXNzYWdlIAoNCgUFAQIaARIEmAEEGgoNCgUFAQIaAhIEmAEmKAopCgQFAQIbEgSZAQQpIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDQoFBQECGwESBJkBBBgKDQoFBQECGwISBJkBJigKKQoEBQECHBIEmgEEKSIbIENvbnRyb2xsZXIvc3dpdGNoIG1lc3NhZ2UgCg0KBQUBAhwBEgSaAQQSCg0KBQUBAhwCEgSaASYoCl0KBAUBAh0SBJ0BBCkaMiBNZXRlcnMgYW5kIHJhdGUgbGltaXRlcnMgY29uZmlndXJhdGlvbiBtZXNzYWdlcy4gIhsgQ29udHJvbGxlci9zd2l0Y2ggbWVzc2FnZSAKDQoFBQECHQESBJ0BBBIKDQoFBQECHQISBJ0BJigKLwoCBAASBqEBAKcBARohIEhlYWRlciBvbiBhbGwgT3BlbkZsb3cgcGFja2V0cy4gCgsKAwQAARIEoQEIEgocCgQEAAIAEgSiAQQXIg4gT0ZQX1ZFUlNJT04uIAoPCgUEAAIABBIGogEEoQEUCg0KBQQAAgAFEgSiAQQKCg0KBQQAAgABEgSiAQsSCg0KBQQAAgADEgSiARUWCisKBAQAAgESBKMBBBYiHSBPbmUgb2YgdGhlIE9GUFRfIGNvbnN0YW50cy4gCg8KBQQAAgEEEgajAQSiARcKDQoFBAACAQYSBKMBBAwKDQoFBAACAQESBKMBDREKDQoFBAACAQMSBKMBFBUKgAEKBAQAAgISBKQBBBMiciBUcmFuc2FjdGlvbiBpZCBhc3NvY2lhdGVkIHdpdGggdGhpcyBwYWNrZXQuClJlcGxpZXMgdXNlIHRoZSBzYW1lIGlkIGFzIHdhcyBpbiB0aGUgcmVxdWVzdAp0byBmYWNpbGl0YXRlIHBhaXJpbmcuIAoPCgUEAAICBBIGpAEEowEWCg0KBQQAAgIFEgSkAQQKCg0KBQQAAgIBEgSkAQsOCg0KBQQAAgIDEgSkARESCiUKAgUCEgarAQCuAQEaFyBIZWxsbyBlbGVtZW50cyB0eXBlcy4KCgsKAwUCARIEqwEFGAoMCgQFAgIAEgSsAQQmCg0KBQUCAgABEgSsAQQSCg0KBQUCAgACEgSsASQlCiwKBAUCAgESBK0BBCYiHiBCaXRtYXAgb2YgdmVyc2lvbiBzdXBwb3J0ZWQuIAoNCgUFAgIBARIErQEEGAoNCgUFAgIBAhIErQEkJQo0CgIEARIGsQEAtgEBGiYgQ29tbW9uIGhlYWRlciBmb3IgYWxsIEhlbGxvIEVsZW1lbnRzIAoLCgMEAQESBLEBCB0KIAoEBAECABIEsgEEISISIE9uZSBvZiBPRlBIRVRfKi4gCg8KBQQBAgAEEgayAQSxAR8KDQoFBAECAAYSBLIBBBcKDQoFBAECAAESBLIBGBwKDQoFBAECAAMSBLIBHyAKDgoEBAEIABIGswEEtQEFCg0KBQQBCAABEgSzAQoRCgwKBAQBAgESBLQBCDcKDQoFBAECAQYSBLQBCCQKDQoFBAECAQESBLQBJTIKDQoFBAECAQMSBLQBNTYKLAoCBAISBrkBALsBARoeIFZlcnNpb24gYml0bWFwIEhlbGxvIEVsZW1lbnQgCgsKAwQCARIEuQEIJAo0CgQEAgIAEgS6AQQgIiYgTGlzdCBvZiBiaXRtYXBzIC0gc3VwcG9ydGVkIHZlcnNpb25zIAoNCgUEAgIABBIEugEEDAoNCgUEAgIABRIEugENEwoNCgUEAgIAARIEugEUGwoNCgUEAgIAAxIEugEeHwrMAQoCBAMSBsABAMQBARqoASBPRlBUX0hFTExPLiAgVGhpcyBtZXNzYWdlIGluY2x1ZGVzIHplcm8gb3IgbW9yZSBoZWxsbyBlbGVtZW50cyBoYXZpbmcKIHZhcmlhYmxlIHNpemUuIFVua25vd24gZWxlbWVudHMgdHlwZXMgbXVzdCBiZSBpZ25vcmVkL3NraXBwZWQsIHRvIGFsbG93CiBmb3IgZnV0dXJlIGV4dGVuc2lvbnMuICITb2ZwX2hlYWRlciBoZWFkZXI7CgoLCgMEAwESBMABCBEKLwoEBAMCABIEwwEEMBoUIEhlbGxvIGVsZW1lbnQgbGlzdCAiCyAwIG9yIG1vcmUgCg0KBQQDAgAEEgTDAQQMCg0KBQQDAgAGEgTDAQ0iCg0KBQQDAgABEgTDASMrCg0KBQQDAgADEgTDAS4vCjYKAgUDEgbIAQDOAQEyKCNkZWZpbmUgT0ZQX0RFRkFVTFRfTUlTU19TRU5EX0xFTiAgIDEyOAoKCwoDBQMBEgTIAQUVCk8KBAUDAgASBMoBBBsaGyBIYW5kbGluZyBvZiBJUCBmcmFnbWVudHMuICIkIE5vIHNwZWNpYWwgaGFuZGxpbmcgZm9yIGZyYWdtZW50cy4gCg0KBQUDAgABEgTKAQQUCg0KBQUDAgACEgTKARkaCh8KBAUDAgESBMsBBBsiESBEcm9wIGZyYWdtZW50cy4gCg0KBQUDAgEBEgTLAQQSCg0KBQUDAgECEgTLARkaCjcKBAUDAgISBMwBBBsiKSBSZWFzc2VtYmxlIChvbmx5IGlmIE9GUENfSVBfUkVBU00gc2V0KS4gCg0KBQUDAgIBEgTMAQQTCg0KBQUDAgICEgTMARkaCjMKBAUDAgMSBM0BBBsiJSBCaXRtYXNrIG9mIGZsYWdzIGRlYWxpbmcgd2l0aCBmcmFnLiAKDQoFBQMCAwESBM0BBBIKDQoFBQMCAwISBM0BGRoKJQoCBAQSBtEBANgBARoXIFN3aXRjaCBjb25maWd1cmF0aW9uLiAKCwoDBAQBEgTRAQgZCjwKBAQEAgASBNMBBBUaE29mcF9oZWFkZXIgaGVhZGVyOwoiGSBCaXRtYXAgb2YgT0ZQQ18qIGZsYWdzLiAKDwoFBAQCAAQSBtMBBNEBGwoNCgUEBAIABRIE0wEECgoNCgUEBAIAARIE0wELEAoNCgUEBAIAAxIE0wETFAp9CgQEBAIBEgTUAQQdIm8gTWF4IGJ5dGVzIG9mIHBhY2tldCB0aGF0IGRhdGFwYXRoCnNob3VsZCBzZW5kIHRvIHRoZSBjb250cm9sbGVyLiBTZWUKb2ZwX2NvbnRyb2xsZXJfbWF4X2xlbiBmb3IgdmFsaWQgdmFsdWVzLgoKDwoFBAQCAQQSBtQBBNMBFQoNCgUEBAIBBRIE1AEECgoNCgUEBAIBARIE1AELGAoNCgUEBAIBAxIE1AEbHApGCgIFBBIG2wEA3gEBGjggRmxhZ3MgdG8gY29uZmlndXJlIHRoZSB0YWJsZS4gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuIAoLCgMFBAESBNsBBRUKDAoEBQQCABIE3AEEFgoNCgUFBAIAARIE3AEEEQoNCgUFBAIAAhIE3AEUFQofCgQFBAIBEgTdAQQeIhEgRGVwcmVjYXRlZCBiaXRzIAoNCgUFBAIBARIE3QEEGQoNCgUFBAIBAhIE3QEcHQpKCgIFBRIG4QEA6wEBGjwgVGFibGUgbnVtYmVyaW5nLiBUYWJsZXMgY2FuIHVzZSBhbnkgbnVtYmVyIHVwIHRvIE9GUFRfTUFYLiAKCwoDBQUBEgThAQUOCgwKBAUFAgASBOMBBBYKDQoFBQUCAAESBOMBBBEKDQoFBQUCAAISBOMBFBUKKQoEBQUCARIE5gEEHBobIExhc3QgdXNhYmxlIHRhYmxlIG51bWJlci4gCg0KBQUFAgEBEgTmAQQNCg0KBQUFAgECEgTmARcbCmIKBAUFAgISBOkBBBwaDiBGYWtlIHRhYmxlcy4gIkQgV2lsZGNhcmQgdGFibGUgdXNlZCBmb3IgdGFibGUgY29uZmlnLApmbG93IHN0YXRzIGFuZCBmbG93IGRlbGV0ZXMuIAoNCgUFBQICARIE6QEEDQoNCgUFBQICAhIE6QEXGwo5CgIEBRIG7wEA8wEBGisgQ29uZmlndXJlL01vZGlmeSBiZWhhdmlvciBvZiBhIGZsb3cgdGFibGUgCgsKAwQFARIE7wEIFQpUCgQEBQIAEgTxAQQYGhNvZnBfaGVhZGVyIGhlYWRlcjsKIjEgSUQgb2YgdGhlIHRhYmxlLCBPRlBUVF9BTEwgaW5kaWNhdGVzIGFsbCB0YWJsZXMgCg8KBQQFAgAEEgbxAQTvARcKDQoFBAUCAAUSBPEBBAoKDQoFBAUCAAESBPEBCxMKDQoFBAUCAAMSBPEBFhcKJwoEBAUCARIE8gEEFiIZIEJpdG1hcCBvZiBPRlBUQ18qIGZsYWdzIAoPCgUEBQIBBBIG8gEE8QEYCg0KBQQFAgEFEgTyAQQKCg0KBQQFAgEBEgTyAQsRCg0KBQQFAgEDEgTyARQVCjcKAgUGEgb2AQD/AQEaKSBDYXBhYmlsaXRpZXMgc3VwcG9ydGVkIGJ5IHRoZSBkYXRhcGF0aC4gCgsKAwUGARIE9gEFFQoMCgQFBgIAEgT3AQQcCg0KBQUGAgABEgT3AQQQCg0KBQUGAgACEgT3ARobCiAKBAUGAgESBPgBBBwiEiBGbG93IHN0YXRpc3RpY3MuIAoNCgUFBgIBARIE+AEEEwoNCgUFBgIBAhIE+AEaGwohCgQFBgICEgT5AQQcIhMgVGFibGUgc3RhdGlzdGljcy4gCg0KBQUGAgIBEgT5AQQUCg0KBQUGAgICEgT5ARobCiAKBAUGAgMSBPoBBBwiEiBQb3J0IHN0YXRpc3RpY3MuIAoNCgUFBgIDARIE+gEEEwoNCgUFBgIDAhIE+gEaGwohCgQFBgIEEgT7AQQcIhMgR3JvdXAgc3RhdGlzdGljcy4gCg0KBQUGAgQBEgT7AQQUCg0KBQUGAgQCEgT7ARobCiwKBAUGAgUSBPwBBB0iHiBDYW4gcmVhc3NlbWJsZSBJUCBmcmFnbWVudHMuIAoNCgUFBgIFARIE/AEEEQoNCgUFBgIFAhIE/AEaHAohCgQFBgIGEgT9AQQdIhMgUXVldWUgc3RhdGlzdGljcy4gCg0KBQUGAgYBEgT9AQQUCg0KBQUGAgYCEgT9ARocCjAKBAUGAgcSBP4BBB4iIiBTd2l0Y2ggd2lsbCBibG9jayBsb29waW5nIHBvcnRzLiAKDQoFBQYCBwESBP4BBBUKDQoFBQYCBwISBP4BGh0K2QEKAgUHEgaFAgCMAgEaygEgRmxhZ3MgdG8gaW5kaWNhdGUgYmVoYXZpb3Igb2YgdGhlIHBoeXNpY2FsIHBvcnQuICBUaGVzZSBmbGFncyBhcmUKIHVzZWQgaW4gb2ZwX3BvcnQgdG8gZGVzY3JpYmUgdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4gIFRoZXkgYXJlCiB1c2VkIGluIHRoZSBvZnBfcG9ydF9tb2QgbWVzc2FnZSB0byBjb25maWd1cmUgdGhlIHBvcnQncyBiZWhhdmlvci4KCgsKAwUHARIEhQIFFAoMCgQFBwIAEgSGAgQbCg0KBQUHAgABEgSGAgQRCg0KBQUHAgACEgSGAhkaCi4KBAUHAgESBIcCBBsiICBQb3J0IGlzIGFkbWluaXN0cmF0aXZlbHkgZG93bi4gCg0KBQUHAgEBEgSHAgQTCg0KBQUHAgECEgSHAhkaCjIKBAUHAgISBIkCBBsiJCBEcm9wIGFsbCBwYWNrZXRzIHJlY2VpdmVkIGJ5IHBvcnQuIAoNCgUFBwICARIEiQIEEQoNCgUFBwICAhIEiQIZGgovCgQFBwIDEgSKAgQcIiEgRHJvcCBwYWNrZXRzIGZvcndhcmRlZCB0byBwb3J0LiAKDQoFBQcCAwESBIoCBBAKDQoFBQcCAwISBIoCGRsKNAoEBQcCBBIEiwIEHCImIERvIG5vdCBzZW5kIHBhY2tldC1pbiBtc2dzIGZvciBwb3J0LiAKDQoFBQcCBAESBIsCBBYKDQoFBQcCBAISBIsCGRsKZQoCBQgSBpECAJYCARpXIEN1cnJlbnQgc3RhdGUgb2YgdGhlIHBoeXNpY2FsIHBvcnQuICBUaGVzZSBhcmUgbm90IGNvbmZpZ3VyYWJsZSBmcm9tCiB0aGUgY29udHJvbGxlci4KCgsKAwUIARIEkQIFEwoMCgQFCAIAEgSSAgQbCg0KBQUIAgABEgSSAgQRCg0KBQUIAgACEgSSAhkaCikKBAUIAgESBJMCBBsiGyBObyBwaHlzaWNhbCBsaW5rIHByZXNlbnQuIAoNCgUFCAIBARIEkwIEEwoNCgUFCAIBAhIEkwIZGgofCgQFCAICEgSUAgQbIhEgUG9ydCBpcyBibG9ja2VkIAoNCgUFCAICARIElAIEEQoNCgUFCAICAhIElAIZGgotCgQFCAIDEgSVAgQbIh8gTGl2ZSBmb3IgRmFzdCBGYWlsb3ZlciBHcm91cC4gCg0KBQUIAgMBEgSVAgQOCg0KBQUIAgMCEgSVAhkaCjoKAgUJEgaZAgCrAgEaLCBGZWF0dXJlcyBvZiBwb3J0cyBhdmFpbGFibGUgaW4gYSBkYXRhcGF0aC4gCgsKAwUJARIEmQIFFgoMCgQFCQIAEgSaAgQZCg0KBQUJAgABEgSaAgQRCg0KBQUJAgACEgSaAhcYCi8KBAUJAgESBJsCBBkiISAxMCBNYiBoYWxmLWR1cGxleCByYXRlIHN1cHBvcnQuIAoNCgUFCQIBARIEmwIEEQoNCgUFCQIBAhIEmwIXGAovCgQFCQICEgScAgQZIiEgMTAgTWIgZnVsbC1kdXBsZXggcmF0ZSBzdXBwb3J0LiAKDQoFBQkCAgESBJwCBBEKDQoFBQkCAgISBJwCFxgKMAoEBQkCAxIEnQIEGSIiIDEwMCBNYiBoYWxmLWR1cGxleCByYXRlIHN1cHBvcnQuIAoNCgUFCQIDARIEnQIEEgoNCgUFCQIDAhIEnQIXGAowCgQFCQIEEgSeAgQZIiIgMTAwIE1iIGZ1bGwtZHVwbGV4IHJhdGUgc3VwcG9ydC4gCg0KBQUJAgQBEgSeAgQSCg0KBQUJAgQCEgSeAhcYCi4KBAUJAgUSBJ8CBBoiICAxIEdiIGhhbGYtZHVwbGV4IHJhdGUgc3VwcG9ydC4gCg0KBQUJAgUBEgSfAgQQCg0KBQUJAgUCEgSfAhcZCi4KBAUJAgYSBKACBBoiICAxIEdiIGZ1bGwtZHVwbGV4IHJhdGUgc3VwcG9ydC4gCg0KBQUJAgYBEgSgAgQQCg0KBQUJAgYCEgSgAhcZCi8KBAUJAgcSBKECBBoiISAxMCBHYiBmdWxsLWR1cGxleCByYXRlIHN1cHBvcnQuIAoNCgUFCQIHARIEoQIEEQoNCgUFCQIHAhIEoQIXGQovCgQFCQIIEgSiAgQbIiEgNDAgR2IgZnVsbC1kdXBsZXggcmF0ZSBzdXBwb3J0LiAKDQoFBQkCCAESBKICBBEKDQoFBQkCCAISBKICFxoKMAoEBQkCCRIEowIEGyIiIDEwMCBHYiBmdWxsLWR1cGxleCByYXRlIHN1cHBvcnQuIAoNCgUFCQIJARIEowIEEgoNCgUFCQIJAhIEowIXGgouCgQFCQIKEgSkAgQbIiAgMSBUYiBmdWxsLWR1cGxleCByYXRlIHN1cHBvcnQuIAoNCgUFCQIKARIEpAIEEAoNCgUFCQIKAhIEpAIXGgosCgQFCQILEgSlAgQcIh4gT3RoZXIgcmF0ZSwgbm90IGluIHRoZSBsaXN0LiAKDQoFBQkCCwESBKUCBA8KDQoFBQkCCwISBKUCFxsKHgoEBQkCDBIEpgIEHCIQIENvcHBlciBtZWRpdW0uIAoNCgUFCQIMARIEpgIEEAoNCgUFCQIMAhIEpgIXGwodCgQFCQINEgSnAgQcIg8gRmliZXIgbWVkaXVtLiAKDQoFBQkCDQESBKcCBA8KDQoFBQkCDQISBKcCFxsKIQoEBQkCDhIEqAIEHCITIEF1dG8tbmVnb3RpYXRpb24uIAoNCgUFCQIOARIEqAIEEQoNCgUFCQIOAhIEqAIXGwoWCgQFCQIPEgSpAgQdIgggUGF1c2UuIAoNCgUFCQIPARIEqQIEDwoNCgUFCQIPAhIEqQIXHAohCgQFCQIQEgSqAgQdIhMgQXN5bW1ldHJpYyBwYXVzZS4gCg0KBQUJAhABEgSqAgQUCg0KBQUJAhACEgSqAhccCiUKAgQGEgauAgC+AgEaFyBEZXNjcmlwdGlvbiBvZiBhIHBvcnQgCgsKAwQGARIErgIIEAoMCgQEBgIAEgSvAgQXCg8KBQQGAgAEEgavAgSuAhIKDQoFBAYCAAUSBK8CBAoKDQoFBAYCAAESBK8CCxIKDQoFBAYCAAMSBK8CFRYKHwoEBAYCARIEsAIEICIRIFtPRlBfRVRIX0FMRU5dOwoKDQoFBAYCAQQSBLACBAwKDQoFBAYCAQUSBLACDRMKDQoFBAYCAQESBLACFBsKDQoFBAYCAQMSBLACHh8KHwoEBAYCAhIEsQIEFCIRIE51bGwtdGVybWluYXRlZCAKDwoFBAYCAgQSBrECBLACIAoNCgUEBgICBRIEsQIECgoNCgUEBgICARIEsQILDwoNCgUEBgICAxIEsQISEwooCgQEBgIDEgSzAgQWIhogQml0bWFwIG9mIE9GUFBDXyogZmxhZ3MuIAoPCgUEBgIDBBIGswIEsQIUCg0KBQQGAgMFEgSzAgQKCg0KBQQGAgMBEgSzAgsRCg0KBQQGAgMDEgSzAhQVCigKBAQGAgQSBLQCBBUiGiBCaXRtYXAgb2YgT0ZQUFNfKiBmbGFncy4gCg8KBQQGAgQEEga0AgSzAhYKDQoFBAYCBAUSBLQCBAoKDQoFBAYCBAESBLQCCxAKDQoFBAYCBAMSBLQCExQKgAEKBAQGAgUSBLgCBBQaXSBCaXRtYXBzIG9mIE9GUFBGXyogdGhhdCBkZXNjcmliZSBmZWF0dXJlcy4gIEFsbCBiaXRzIHplcm9lZCBpZgogdW5zdXBwb3J0ZWQgb3IgdW5hdmFpbGFibGUuICITIEN1cnJlbnQgZmVhdHVyZXMuIAoPCgUEBgIFBBIGuAIEtAIVCg0KBQQGAgUFEgS4AgQKCg0KBQQGAgUBEgS4AgsPCg0KBQQGAgUDEgS4AhITCjYKBAQGAgYSBLkCBBoiKCBGZWF0dXJlcyBiZWluZyBhZHZlcnRpc2VkIGJ5IHRoZSBwb3J0LiAKDwoFBAYCBgQSBrkCBLgCFAoNCgUEBgIGBRIEuQIECgoNCgUEBgIGARIEuQILFQoNCgUEBgIGAxIEuQIYGQovCgQEBgIHEgS6AgQZIiEgRmVhdHVyZXMgc3VwcG9ydGVkIGJ5IHRoZSBwb3J0LiAKDwoFBAYCBwQSBroCBLkCGgoNCgUEBgIHBRIEugIECgoNCgUEBgIHARIEugILFAoNCgUEBgIHAxIEugIXGAosCgQEBgIIEgS7AgQUIh4gRmVhdHVyZXMgYWR2ZXJ0aXNlZCBieSBwZWVyLiAKDwoFBAYCCAQSBrsCBLoCGQoNCgUEBgIIBRIEuwIECgoNCgUEBgIIARIEuwILDwoNCgUEBgIIAxIEuwISEwotCgQEBgIJEgS8AgQbIh8gQ3VycmVudCBwb3J0IGJpdHJhdGUgaW4ga2Jwcy4gCg8KBQQGAgkEEga8AgS7AhQKDQoFBAYCCQUSBLwCBAoKDQoFBAYCCQESBLwCCxUKDQoFBAYCCQMSBLwCGBoKKAoEBAYCChIEvQIEGiIaIE1heCBwb3J0IGJpdHJhdGUgaW4ga2JwcyAKDwoFBAYCCgQSBr0CBLwCGwoNCgUEBgIKBRIEvQIECgoNCgUEBgIKARIEvQILFAoNCgUEBgIKAxIEvQIXGQogCgIEBxIGwQIAzgIBGhIgU3dpdGNoIGZlYXR1cmVzLiAKCwoDBAcBEgTBAggbCpMBCgQEBwIAEgTDAgQbGhNvZnBfaGVhZGVyIGhlYWRlcjsKInAgRGF0YXBhdGggdW5pcXVlIElELiAgVGhlIGxvd2VyIDQ4LWJpdHMgYXJlIGZvcgphIE1BQyBhZGRyZXNzLCB3aGlsZSB0aGUgdXBwZXIgMTYtYml0cyBhcmUKaW1wbGVtZW50ZXItZGVmaW5lZC4gCg8KBQQHAgAEEgbDAgTBAh0KDQoFBAcCAAUSBMMCBAoKDQoFBAcCAAESBMMCCxYKDQoFBAcCAAMSBMMCGRoKLQoEBAcCARIExwIEGSIfIE1heCBwYWNrZXRzIGJ1ZmZlcmVkIGF0IG9uY2UuIAoPCgUEBwIBBBIGxwIEwwIbCg0KBQQHAgEFEgTHAgQKCg0KBQQHAgEBEgTHAgsUCg0KBQQHAgEDEgTHAhcYCjcKBAQHAgISBMkCBBgiKSBOdW1iZXIgb2YgdGFibGVzIHN1cHBvcnRlZCBieSBkYXRhcGF0aC4gCg8KBQQHAgIEEgbJAgTHAhkKDQoFBAcCAgUSBMkCBAoKDQoFBAcCAgESBMkCCxMKDQoFBAcCAgMSBMkCFhcKLgoEBAcCAxIEygIEHCIgIElkZW50aWZ5IGF1eGlsaWFyeSBjb25uZWN0aW9ucyAKDwoFBAcCAwQSBsoCBMkCGAoNCgUEBwIDBRIEygIECgoNCgUEBwIDARIEygILFwoNCgUEBwIDAxIEygIaGwpCCgQEBwIEEgTNAgQcGgsgRmVhdHVyZXMuICInIEJpdG1hcCBvZiBzdXBwb3J0ICJvZnBfY2FwYWJpbGl0aWVzIi4gCg8KBQQHAgQEEgbNAgTKAhwKDQoFBAcCBAUSBM0CBAoKDQoFBAcCBAESBM0CCxcKDQoFBAcCBAMSBM0CGhsKNAoCBQoSBtECANUCARomIFdoYXQgY2hhbmdlZCBhYm91dCB0aGUgcGh5c2ljYWwgcG9ydCAKCwoDBQoBEgTRAgUUCiMKBAUKAgASBNICBBYiFSBUaGUgcG9ydCB3YXMgYWRkZWQuIAoNCgUFCgIAARIE0gIEDQoNCgUFCgIAAhIE0gIUFQolCgQFCgIBEgTTAgQWIhcgVGhlIHBvcnQgd2FzIHJlbW92ZWQuIAoNCgUFCgIBARIE0wIEEAoNCgUFCgIBAhIE0wIUFQo3CgQFCgICEgTUAgQWIikgU29tZSBhdHRyaWJ1dGUgb2YgdGhlIHBvcnQgaGFzIGNoYW5nZWQuIAoNCgUFCgICARIE1AIEEAoNCgUFCgICAhIE1AIUFQo2CgIFCxIG2AIA2wIBGiggV2hhdCBjaGFuZ2VkIGFib3V0IHRoZSBwaHlzaWNhbCBkZXZpY2UgCgsKAwULARIE2AIFGgolCgQFCwIAEgTZAgQdIhcgVGhlIGRldmljZSBjb25uZWN0ZWQuIAoNCgUFCwIAARIE2QIEFAoNCgUFCwIAAhIE2QIbHAooCgQFCwIBEgTaAgQdIhogVGhlIGRldmljZSBkaXNjb25uZWN0ZWQuIAoNCgUFCwIBARIE2gIEFwoNCgUFCwIBAhIE2gIbHAo7CgIECBIG3gIA4gIBGi0gQSBwaHlzaWNhbCBwb3J0IGhhcyBjaGFuZ2VkIGluIHRoZSBkYXRhcGF0aCAKCwoDBAgBEgTeAggXCjQKBAQIAgASBOACBB8aE29mcF9oZWFkZXIgaGVhZGVyOwoiESBPbmUgb2YgT0ZQUFJfKi4gCg8KBQQIAgAEEgbgAgTeAhkKDQoFBAgCAAYSBOACBBMKDQoFBAgCAAESBOACFBoKDQoFBAgCAAMSBOACHR4KDAoEBAgCARIE4QIEFgoPCgUECAIBBBIG4QIE4AIfCg0KBQQIAgEGEgThAgQMCg0KBQQIAgEBEgThAg0RCg0KBQQIAgEDEgThAhQVCj0KAgQJEgblAgDoAgEaLyBBIHBoeXNpY2FsIGRldmljZSBoYXMgY2hhbmdlZCBpbiB0aGUgZGF0YXBhdGggCgsKAwQJARIE5QIIGQo1CgQECQIAEgTnAgQlGhNvZnBfaGVhZGVyIGhlYWRlcjsKIhIgT25lIG9mIE9GUERFVl8qLiAKDwoFBAkCAAQSBucCBOUCGwoNCgUECQIABhIE5wIEGQoNCgUECQIAARIE5wIaIAoNCgUECQIAAxIE5wIjJAo0CgIEChIG6wIA+QIBGiYgTW9kaWZ5IGJlaGF2aW9yIG9mIHRoZSBwaHlzaWNhbCBwb3J0IAoLCgMECgESBOsCCBQKIQoEBAoCABIE7QIEFxoTb2ZwX2hlYWRlciBoZWFkZXI7CgoPCgUECgIABBIG7QIE6wIWCg0KBQQKAgAFEgTtAgQKCg0KBQQKAgABEgTtAgsSCg0KBQQKAgADEgTtAhUWCh4KBAQKAgESBO4CBCAiEFtPRlBfRVRIX0FMRU5dOwoKDQoFBAoCAQQSBO4CBAwKDQoFBAoCAQUSBO4CDRMKDQoFBAoCAQESBO4CFBsKDQoFBAoCAQMSBO4CHh8KuwEKBAQKAgISBPQCBBYakAEgVGhlIGhhcmR3YXJlIGFkZHJlc3MgaXMgbm90CmNvbmZpZ3VyYWJsZS4gIFRoaXMgaXMgdXNlZCB0bwpzYW5pdHktY2hlY2sgdGhlIHJlcXVlc3QsIHNvIGl0IG11c3QKYmUgdGhlIHNhbWUgYXMgcmV0dXJuZWQgaW4gYW4Kb2ZwX3BvcnQgc3RydWN0LiAiGiBCaXRtYXAgb2YgT0ZQUENfKiBmbGFncy4gCg8KBQQKAgIEEgb0AgTuAiAKDQoFBAoCAgUSBPQCBAoKDQoFBAoCAgESBPQCCxEKDQoFBAoCAgMSBPQCFBUKNgoEBAoCAxIE9QIEFCIoIEJpdG1hcCBvZiBPRlBQQ18qIGZsYWdzIHRvIGJlIGNoYW5nZWQuIAoPCgUECgIDBBIG9QIE9AIWCg0KBQQKAgMFEgT1AgQKCg0KBQQKAgMBEgT1AgsPCg0KBQQKAgMDEgT1AhITClUKBAQKAgQSBPcCBBkiRyBCaXRtYXAgb2YgT0ZQUEZfKi4gIFplcm8gYWxsIGJpdHMgdG8gcHJldmVudAphbnkgYWN0aW9uIHRha2luZyBwbGFjZS4gCg8KBQQKAgQEEgb3AgT1AhQKDQoFBAoCBAUSBPcCBAoKDQoFBAoCBAESBPcCCxQKDQoFBAoCBAMSBPcCFxgKpAQKAgUMEgaGAwCJAwEaqQMgVGhlIG1hdGNoIHR5cGUgaW5kaWNhdGVzIHRoZSBtYXRjaCBzdHJ1Y3R1cmUgKHNldCBvZiBmaWVsZHMgdGhhdCBjb21wb3NlIHRoZQogbWF0Y2gpIGluIHVzZS4gVGhlIG1hdGNoIHR5cGUgaXMgcGxhY2VkIGluIHRoZSB0eXBlIGZpZWxkIGF0IHRoZSBiZWdpbm5pbmcKIG9mIGFsbCBtYXRjaCBzdHJ1Y3R1cmVzLiBUaGUgIk9wZW5GbG93IEV4dGVuc2libGUgTWF0Y2giIHR5cGUgY29ycmVzcG9uZHMKIHRvIE9YTSBUTFYgZm9ybWF0IGRlc2NyaWJlZCBiZWxvdyBhbmQgbXVzdCBiZSBzdXBwb3J0ZWQgYnkgYWxsIE9wZW5GbG93CiBzd2l0Y2hlcy4gRXh0ZW5zaW9ucyB0aGF0IGRlZmluZSBvdGhlciBtYXRjaCB0eXBlcyBtYXkgYmUgcHVibGlzaGVkIG9uIHRoZQogT05GIHdpa2kuIFN1cHBvcnQgZm9yIGV4dGVuc2lvbnMgaXMgb3B0aW9uYWwuCjIiICMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjIDIiICMjIE9wZW5GbG93IEV4dGVuc2libGUgTWF0Y2guICMjIDIiICMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjIAoLCgMFDAESBIYDBRMKGwoEBQwCABIEhwMEFyINIERlcHJlY2F0ZWQuIAoNCgUFDAIAARIEhwMEEgoNCgUFDAIAAhIEhwMVFgopCgQFDAIBEgSIAwQXIhsgT3BlbkZsb3cgRXh0ZW5zaWJsZSBNYXRjaCAKDQoFBQwCAQESBIgDBA0KDQoFBQwCAQISBIgDFRYKLQoCBAsSBowDAI8DARofIEZpZWxkcyB0byBtYXRjaCBhZ2FpbnN0IGZsb3dzIAoLCgMECwESBIwDCBEKHgoEBAsCABIEjQMEHCIQIE9uZSBvZiBPRlBNVF8qIAoPCgUECwIABBIGjQMEjAMTCg0KBQQLAgAGEgSNAwQSCg0KBQQLAgABEgSNAxMXCg0KBQQLAgADEgSNAxobChkKBAQLAgESBI4DBCoiCyAwIG9yIG1vcmUgCg0KBQQLAgEEEgSOAwQMCg0KBQQLAgEGEgSOAw0aCg0KBQQLAgEBEgSOAxslCg0KBQQLAgEDEgSOAygpCrcICgIFDRIGqAMArQMBGuYBIE9YTSBDbGFzcyBJRHMuCiBUaGUgaGlnaCBvcmRlciBiaXQgZGlmZmVyZW50aWF0ZSByZXNlcnZlZCBjbGFzc2VzIGZyb20gbWVtYmVyIGNsYXNzZXMuCiBDbGFzc2VzIDB4MDAwMCB0byAweDdGRkYgYXJlIG1lbWJlciBjbGFzc2VzLCBhbGxvY2F0ZWQgYnkgT05GLgogQ2xhc3NlcyAweDgwMDAgdG8gMHhGRkZFIGFyZSByZXNlcnZlZCBjbGFzc2VzLCByZXNlcnZlZCBmb3Igc3RhbmRhcmRpc2F0aW9uLgoyqQEgQ29tcG9uZW50cyBvZiBhIE9YTSBUTFYgaGVhZGVyLgogVGhvc2UgbWFjcm9zIGFyZSBub3QgdmFsaWQgZm9yIHRoZSBleHBlcmltZW50ZXIgY2xhc3MsIG1hY3JvcyBmb3IgdGhlCiBleHBlcmltZW50ZXIgY2xhc3Mgd2lsbCBkZXBlbmQgb24gdGhlIGV4cGVyaW1lbnRlciBoZWFkZXIgdXNlZC4gMpMFI2RlZmluZSBPWE1fSEVBREVSX18oQ0xBU1MsIEZJRUxELCBIQVNNQVNLLCBMRU5HVEgpIFwKICAgICgoKENMQVNTKSA8PCAxNikgfCAoKEZJRUxEKSA8PCA5KSB8ICgoSEFTTUFTSykgPDwgOCkgfCAoTEVOR1RIKSkKI2RlZmluZSBPWE1fSEVBREVSKENMQVNTLCBGSUVMRCwgTEVOR1RIKSBcCiAgICBPWE1fSEVBREVSX18oQ0xBU1MsIEZJRUxELCAwLCBMRU5HVEgpCiNkZWZpbmUgT1hNX0hFQURFUl9XKENMQVNTLCBGSUVMRCwgTEVOR1RIKSBcCiAgICBPWE1fSEVBREVSX18oQ0xBU1MsIEZJRUxELCAxLCAoTEVOR1RIKSAqIDIpCiNkZWZpbmUgT1hNX0NMQVNTKEhFQURFUikgKChIRUFERVIpID4+IDE2KQojZGVmaW5lIE9YTV9GSUVMRChIRUFERVIpICgoKEhFQURFUikgPj4gOSkgJiAweDdmKQojZGVmaW5lIE9YTV9UWVBFKEhFQURFUikgKCgoSEVBREVSKSA+PiA5KSAmIDB4N2ZmZmZmKQojZGVmaW5lIE9YTV9IQVNNQVNLKEhFQURFUikgKCgoSEVBREVSKSA+PiA4KSAmIDEpCiNkZWZpbmUgT1hNX0xFTkdUSChIRUFERVIpICgoSEVBREVSKSAmIDB4ZmYpCgojZGVmaW5lIE9YTV9NQUtFX1dJTERfSEVBREVSKEhFQURFUikgXAogICAgT1hNX0hFQURFUl9XKE9YTV9DTEFTUyhIRUFERVIpLCBPWE1fRklFTEQoSEVBREVSKSwgT1hNX0xFTkdUSChIRUFERVIpKQoKCwoDBQ0BEgSoAwUSCi8KBAUNAgASBKkDBCMiISBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggTlhNIAoNCgUFDQIAARIEqQMEEAoNCgUFDQIAAhIEqQMcIgovCgQFDQIBEgSqAwQjIiEgQmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIE5YTSAKDQoFBQ0CAQESBKoDBBAKDQoFBQ0CAQISBKoDHCIKKAoEBQ0CAhIEqwMEIyIaIEJhc2ljIGNsYXNzIGZvciBPcGVuRmxvdyAKDQoFBQ0CAgESBKsDBBkKDQoFBQ0CAgISBKsDHCIKIgoEBQ0CAxIErAMEIyIU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cnQsIGEgbG9naWNhbCBwb3J0LCBvciB0aGUgcmVzZXJ2ZWQgcG9ydCBPRlBQX0xPQ0FMCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQICBRIE9AMIDgoNCgUEDQICARIE9AMPEwoNCgUEDQICAxIE9AMWFwq3BwoEBA0CAxIEiwQIIRpLI2RlZmluZSBPWE1fT0ZfSU5fUEhZX1BPUlQgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JTl9QSFlfUE9SVCwgNCkKIiAgVXNlZCBmb3IgT0ZQWE1UX09GX0lOX1BIWV9QT1JUIDK5BiBQaHlzaWNhbCBwb3J0IG9uIHdoaWNoIHRoZSBwYWNrZXQgd2FzIHJlY2VpdmVkLgoKIENvbnNpZGVyIGEgcGFja2V0IHJlY2VpdmVkIG9uIGEgdHVubmVsIGludGVyZmFjZSBkZWZpbmVkIG92ZXIgYSBsaW5rCiBhZ2dyZWdhdGlvbiBncm91cCAoTEFHKSB3aXRoIHR3byBwaHlzaWNhbCBwb3J0IG1lbWJlcnMuICBJZiB0aGUgdHVubmVsCiBpbnRlcmZhY2UgaXMgdGhlIGxvZ2ljYWwgcG9ydCBib3VuZCB0byBPcGVuRmxvdy4gIEluIHRoaXMgY2FzZSwKIE9GUFhNVF9PRl9JTl9QT1JUIGlzIHRoZSB0dW5uZWwncyBwb3J0IG51bWJlciBhbmQgT0ZQWE1UX09GX0lOX1BIWV9QT1JUIGlzCiB0aGUgcGh5c2ljYWwgcG9ydCBudW1iZXIgb2YgdGhlIExBRyBvbiB3aGljaCB0aGUgdHVubmVsIGlzIGNvbmZpZ3VyZWQuCgogV2hlbiBhIHBhY2tldCBpcyByZWNlaXZlZCBkaXJlY3RseSBvbiBhIHBoeXNpY2FsIHBvcnQgYW5kIG5vdCBwcm9jZXNzZWQgYnkgYQogbG9naWNhbCBwb3J0LCBPRlBYTVRfT0ZfSU5fUE9SVCBhbmQgT0ZQWE1UX09GX0lOX1BIWV9QT1JUIGhhdmUgdGhlIHNhbWUKIHZhbHVlLgoKIFRoaXMgZmllbGQgaXMgdXN1YWxseSBub3QgYXZhaWxhYmxlIGluIGEgcmVndWxhciBtYXRjaCBhbmQgb25seSBhdmFpbGFibGUKIGluIG9mcF9wYWNrZXRfaW4gbWVzc2FnZXMgd2hlbiBpdCdzIGRpZmZlcmVudCBmcm9tIE9YTV9PRl9JTl9QT1JULgoKIFByZXJlcXM6IE9YTV9PRl9JTl9QT1JUIG11c3QgYmUgcHJlc2VudC4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIDBRIEiwQIDgoNCgUEDQIDARIEiwQPHAoNCgUEDQIDAxIEiwQfIAqtAgoEBA0CBBIElwQIIhqOASNkZWZpbmUgT1hNX09GX01FVEFEQVRBICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9NRVRBREFUQSwgOCkKI2RlZmluZSBPWE1fT0ZfTUVUQURBVEFfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX01FVEFEQVRBLCA4KQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX01FVEFEQVRBIDJuIFRhYmxlIG1ldGFkYXRhLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiA2NC1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBA0CBAUSBJcECA4KDQoFBA0CBAESBJcEDx0KDQoFBA0CBAMSBJcEICEK4gMKBAQNAgUSBKQECBoamAIjZGVmaW5lIE9YTV9PRl9FVEhfRFNUICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfRVRIX0RTVCwgNikKI2RlZmluZSBPWE1fT0ZfRVRIX0RTVF9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9EU1QsIDYpCiNkZWZpbmUgT1hNX09GX0VUSF9TUkMgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9FVEhfU1JDLCA2KQojZGVmaW5lIE9YTV9PRl9FVEhfU1JDX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfRVRIX1NSQywgNikKIi8gVXNlZCBmb3IgT0ZQWE1UX09GQl9FVEhfRFNUIChleGFjdGx5IDYgYnl0ZXMpIDKHASBTb3VyY2Ugb3IgZGVzdGluYXRpb24gYWRkcmVzcyBpbiBFdGhlcm5ldCBoZWFkZXIuCgogUHJlcmVxczogTm9uZS4KCiBGb3JtYXQ6IDQ4LWJpdCBFdGhlcm5ldCBNQUMgYWRkcmVzcy4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuIAoNCgUEDQIFBRIEpAQIDQoNCgUEDQIFARIEpAQOFQoNCgUEDQIFAxIEpAQYGQo9CgQEDQIGEgSlBAgaIi8gVXNlZCBmb3IgT0ZQWE1UX09GQl9FVEhfU1JDIChleGFjdGx5IDYgYnl0ZXMpIAoNCgUEDQIGBRIEpQQIDQoNCgUEDQIGARIEpQQOFQoNCgUEDQIGAxIEpQQYGQrpAQoEBA0CBxIErwQIHBpGI2RlZmluZSBPWE1fT0ZfRVRIX1RZUEUgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0VUSF9UWVBFLDIpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfRVRIX1RZUEUgMnMgUGFja2V0J3MgRXRoZXJuZXQgdHlwZS4KCiBQcmVyZXFzOiBOb25lLgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAgcFEgSvBAgOCg0KBQQNAgcBEgSvBA8XCg0KBQQNAgcDEgSvBBobCoMLCgQEDQIIEgTVBAgcGo4BI2RlZmluZSBPWE1fT0ZfVkxBTl9WSUQgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1ZMQU5fVklELCAyKQojZGVmaW5lIE9YTV9PRl9WTEFOX1ZJRF9XIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfVkxBTl9WSUQsIDIpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfVkxBTl9WSUQgMsMJIDgwMi4xUSBWSUQuCgogRm9yIGEgcGFja2V0IHdpdGggYW4gODAyLjFRIGhlYWRlciwgdGhpcyBpcyB0aGUgVkxBTi1JRCAoVklEKSBmcm9tIHRoZQogb3V0ZXJtb3N0IHRhZywgd2l0aCB0aGUgQ0ZJIGJpdCBmb3JjZWQgdG8gMS4gRm9yIGEgcGFja2V0IHdpdGggbm8gODAyLjFRCiBoZWFkZXIsIHRoaXMgaGFzIHZhbHVlIE9GUFZJRF9OT05FLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIgd2l0aCBiaXQgMTMgaW5kaWNhdGluZwogcHJlc2VuY2Ugb2YgVkxBTiBoZWFkZXIgYW5kIDMgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgMTMgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKIFRoaXMgZmllbGQgY2FuIGJlIHVzZWQgaW4gdmFyaW91cyB3YXlzOgoKICAgLSBJZiBpdCBpcyBub3QgY29uc3RyYWluZWQgYXQgYWxsLCB0aGUgbnhfbWF0Y2ggbWF0Y2hlcyBwYWNrZXRzIHdpdGhvdXQKICAgICBhbiA4MDIuMVEgaGVhZGVyIG9yIHdpdGggYW4gODAyLjFRIGhlYWRlciB0aGF0IGhhcyBhbnkgVklEIHZhbHVlLgoKICAgLSBUZXN0aW5nIGZvciBhbiBleGFjdCBtYXRjaCB3aXRoIDB4MCBtYXRjaGVzIG9ubHkgcGFja2V0cyB3aXRob3V0CiAgICAgYW4gODAyLjFRIGhlYWRlci4KCiAgIC0gVGVzdGluZyBmb3IgYW4gZXhhY3QgbWF0Y2ggd2l0aCBhIFZJRCB2YWx1ZSB3aXRoIENGST0xIG1hdGNoZXMgcGFja2V0cwogICAgIHRoYXQgaGF2ZSBhbiA4MDIuMVEgaGVhZGVyIHdpdGggYSBzcGVjaWZpZWQgVklELgoKICAgLSBUZXN0aW5nIGZvciBhbiBleGFjdCBtYXRjaCB3aXRoIGEgbm9uemVybyBWSUQgdmFsdWUgd2l0aCBDRkk9MCBkb2VzCiAgICAgbm90IG1ha2Ugc2Vuc2UuICBUaGUgc3dpdGNoIG1heSByZWplY3QgdGhpcyBjb21iaW5hdGlvbi4KCiAgIC0gVGVzdGluZyB3aXRoIG54bV92YWx1ZT0wLCBueG1fbWFzaz0weDBmZmYgbWF0Y2hlcyBwYWNrZXRzIHdpdGggbm8gODAyLjFRCiAgICAgaGVhZGVyIG9yIHdpdGggYW4gODAyLjFRIGhlYWRlciB3aXRoIGEgVklEIG9mIDAuCgogICAtIFRlc3Rpbmcgd2l0aCBueG1fdmFsdWU9MHgxMDAwLCBueG1fbWFzaz0weDEwMDAgbWF0Y2hlcyBwYWNrZXRzIHdpdGgKICAgICBhbiA4MDIuMVEgaGVhZGVyIHRoYXQgaGFzIGFueSBWSUQgdmFsdWUuCgoNCgUEDQIIBRIE1QQIDgoNCgUEDQIIARIE1QQPFwoNCgUEDQIIAxIE1QQaGwrQAwoEBA0CCRIE5QQIHRpHI2RlZmluZSBPWE1fT0ZfVkxBTl9QQ1AgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1ZMQU5fUENQLCAxKQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX1ZMQU5fUENQIDLYAiA4MDIuMVEgUENQLgoKIEZvciBhIHBhY2tldCB3aXRoIGFuIDgwMi4xUSBoZWFkZXIsIHRoaXMgaXMgdGhlIFZMQU4tUENQIGZyb20gdGhlCiBvdXRlcm1vc3QgdGFnLiAgRm9yIGEgcGFja2V0IHdpdGggbm8gODAyLjFRIGhlYWRlciwgdGhpcyBoYXMgdmFsdWUKIDAuCgogUHJlcmVxczogT1hNX09GX1ZMQU5fVklEIG11c3QgYmUgZGlmZmVyZW50IGZyb20gT0ZQVklEX05PTkUuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggNSBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAzIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4KCg0KBQQNAgkFEgTlBAgOCg0KBQQNAgkBEgTlBA8XCg0KBQQNAgkDEgTlBBocCqgDCgQEDQIKEgTxBAgcGkcjZGVmaW5lIE9YTV9PRl9JUF9EU0NQICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQX0RTQ1AsIDEpCiIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfSVBfRFNDUCAysQIgVGhlIERpZmYgU2VydiBDb2RlIFBvaW50IChEU0NQKSBiaXRzIG9mIHRoZSBJUCBoZWFkZXIuCiBQYXJ0IG9mIHRoZSBJUHY0IFRvUyBmaWVsZCBvciB0aGUgSVB2NiBUcmFmZmljIENsYXNzIGZpZWxkLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IGJlIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlciB3aXRoIDIgbW9zdC1zaWduaWZpY2FudCBiaXRzIGZvcmNlZCB0byAwLgogT25seSB0aGUgbG93ZXIgNiBiaXRzIGhhdmUgbWVhbmluZy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIKBRIE8QQIDgoNCgUEDQIKARIE8QQPFgoNCgUEDQIKAxIE8QQZGwqNAwoEBA0CCxIE/QQIGxpFI2RlZmluZSBPWE1fT0ZfSVBfRUNOICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQX0VDTiwgMSkKIhwgVXNlZCBmb3IgT0ZQWE1UX09GQl9JUF9FQ04gMpkCIFRoZSBFQ04gYml0cyBvZiB0aGUgSVAgaGVhZGVyLgogUGFydCBvZiB0aGUgSVB2NCBUb1MgZmllbGQgb3IgdGhlIElQdjYgVHJhZmZpYyBDbGFzcyBmaWVsZC4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBiZSBlaXRoZXIgMHgwODAwIG9yIDB4ODZkZC4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCA2IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDIgYml0cyBoYXZlIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CCwUSBP0ECA4KDQoFBA0CCwESBP0EDxUKDQoFBA0CCwMSBP0EGBoKjQIKBAQNAgwSBIcFCB0aRyNkZWZpbmUgT1hNX09GX0lQX1BST1RPICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUF9QUk9UTywgMSkKIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9JUF9QUk9UTyAylQEgVGhlICJwcm90b2NvbCIgYnl0ZSBpbiB0aGUgSVAgaGVhZGVyLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IGJlIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgoKIEZvcm1hdDogOC1iaXQgaW50ZWdlci4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIMBRIEhwUIDgoNCgUEDQIMARIEhwUPFwoNCgUEDQIMAxIEhwUaHAqNBAoEBA0CDRIElQUIHRqkAiNkZWZpbmUgT1hNX09GX0lQVjRfU1JDICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjRfU1JDLCA0KQojZGVmaW5lIE9YTV9PRl9JUFY0X1NSQ19XICAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY0X1NSQywgNCkKI2RlZmluZSBPWE1fT0ZfSVBWNF9EU1QgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNF9EU1QsIDQpCiNkZWZpbmUgT1hNX09GX0lQVjRfRFNUX1cgICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjRfRFNULCA0KQoiHiBVc2VkIGZvciBPRlBYTVRfT0ZCX0lQVjRfU1JDIDK3ASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIGFkZHJlc3MgaW4gdGhlIElQIGhlYWRlci4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDAgZXhhY3RseS4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlci4KCiBNYXNraW5nOiBBcmJpdHJhcnkgbWFza3MuCgoNCgUEDQINBRIElQUIDgoNCgUEDQINARIElQUPFwoNCgUEDQINAxIElQUaHAosCgQEDQIOEgSWBQgdIh4gVXNlZCBmb3IgT0ZQWE1UX09GQl9JUFY0X0RTVCAKDQoFBA0CDgUSBJYFCA4KDQoFBA0CDgESBJYFDxcKDQoFBA0CDgMSBJYFGhwKoQMKBAQNAg8SBKMFCBwajAEjZGVmaW5lIE9YTV9PRl9UQ1BfU1JDICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVENQX1NSQywgMikKI2RlZmluZSBPWE1fT0ZfVENQX0RTVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1RDUF9EU1QsIDIpCiIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfVENQX1NSQyAy5AEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBwb3J0IGluIHRoZSBUQ1AgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IGJlIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCA2IGV4YWN0bHkuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CDwUSBKMFCA4KDQoFBA0CDwESBKMFDxYKDQoFBA0CDwMSBKMFGRsKKwoEBA0CEBIEpAUIHCIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfVENQX0RTVCAKDQoFBA0CEAUSBKQFCA4KDQoFBA0CEAESBKQFDxYKDQoFBA0CEAMSBKQFGRsKpQMKBAQNAhESBLEFCBwajAEjZGVmaW5lIE9YTV9PRl9VRFBfU1JDICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfVURQX1NSQywgMikKI2RlZmluZSBPWE1fT0ZfVURQX0RTVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1VEUF9EU1QsIDIpCiIdIFVzZWQgZm9yIE9GUFhNVF9PRkJfVURQX1NSQyAy6AEgVGhlIHNvdXJjZSBvciBkZXN0aW5hdGlvbiBwb3J0IGluIHRoZSBVRFAgaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIGVpdGhlciAweDA4MDAgb3IgMHg4NmRkLgogICBPWE1fT0ZfSVBfUFJPVE8gbXVzdCBtYXRjaCAxNyBleGFjdGx5LgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAhEFEgSxBQgOCg0KBQQNAhEBEgSxBQ8WCg0KBQQNAhEDEgSxBRkbCisKBAQNAhISBLIFCBwiHSBVc2VkIGZvciBPRlBYTVRfT0ZCX1VEUF9EU1QgCg0KBQQNAhIFEgSyBQgOCg0KBQQNAhIBEgSyBQ8WCg0KBQQNAhIDEgSyBRkbCqoDCgQEDQITEgS/BQgdGo4BI2RlZmluZSBPWE1fT0ZfU0NUUF9TUkMgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX1NDVFBfU1JDLCAyKQojZGVmaW5lIE9YTV9PRl9TQ1RQX0RTVCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfU0NUUF9EU1QsIDIpCiIeIFVzZWQgZm9yIE9GUFhNVF9PRkJfU0NUUF9TUkMgMuoBIFRoZSBzb3VyY2Ugb3IgZGVzdGluYXRpb24gcG9ydCBpbiB0aGUgU0NUUCBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggZWl0aGVyIDB4MDgwMCBvciAweDg2ZGQuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDEzMiBleGFjdGx5LgoKIEZvcm1hdDogMTYtYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAhMFEgS/BQgOCg0KBQQNAhMBEgS/BQ8XCg0KBQQNAhMDEgS/BRocCiwKBAQNAhQSBMAFCB0iHiBVc2VkIGZvciBPRlBYTVRfT0ZCX1NDVFBfRFNUIAoNCgUEDQIUBRIEwAUIDgoNCgUEDQIUARIEwAUPFwoNCgUEDQIUAxIEwAUaHAqHAwoEBA0CFRIEzQUIIBqYASNkZWZpbmUgT1hNX09GX0lDTVBWNF9UWVBFICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lDTVBWNF9UWVBFLCAxKQojZGVmaW5lIE9YTV9PRl9JQ01QVjRfQ09ERSAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JQ01QVjRfQ09ERSwgMSkKIiEgVXNlZCBmb3IgT0ZQWE1UX09GQl9JQ01QVjRfVFlQRSAyugEgVGhlIHR5cGUgb3IgY29kZSBpbiB0aGUgSUNNUCBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODAwIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDEgZXhhY3RseS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CFQUSBM0FCA4KDQoFBA0CFQESBM0FDxoKDQoFBA0CFQMSBM0FHR8KLwoEBA0CFhIEzgUIICIhIFVzZWQgZm9yIE9GUFhNVF9PRkJfSUNNUFY0X0NPREUgCg0KBQQNAhYFEgTOBQgOCg0KBQQNAhYBEgTOBQ8aCg0KBQQNAhYDEgTOBR0fCtUCCgQEDQIXEgTbBQgbGkUjZGVmaW5lIE9YTV9PRl9BUlBfT1AgICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX09QLCAyKQoiHCBVc2VkIGZvciBPRlBYTVRfT0ZCX0FSUF9PUCAy4QEgQVJQIG9wY29kZS4KCiBGb3IgYW4gRXRoZXJuZXQrSVAgQVJQIHBhY2tldCwgdGhlIG9wY29kZSBpbiB0aGUgQVJQIGhlYWRlci4gIEFsd2F5cyAwCiBvdGhlcndpc2UuCgogUHJlcmVxczogT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHgwODA2IGV4YWN0bHkuCgogRm9ybWF0OiAxNi1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CFwUSBNsFCA4KDQoFBA0CFwESBNsFDxUKDQoFBA0CFwMSBNsFGBoKtQQKBAQNAhgSBOoFCBwamAIjZGVmaW5lIE9YTV9PRl9BUlBfU1BBICAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1NQQSwgNCkKI2RlZmluZSBPWE1fT0ZfQVJQX1NQQV9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9TUEEsIDQpCiNkZWZpbmUgT1hNX09GX0FSUF9UUEEgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfVFBBLCA0KQojZGVmaW5lIE9YTV9PRl9BUlBfVFBBX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1RQQSwgNCkKIhggRm9yIE9GUFhNVF9PRkJfQVJQX1NQQSAy8QEgRm9yIGFuIEV0aGVybmV0K0lQIEFSUCBwYWNrZXQsIHRoZSBzb3VyY2Ugb3IgdGFyZ2V0IHByb3RvY29sIGFkZHJlc3MKIGluIHRoZSBBUlAgaGVhZGVyLiAgQWx3YXlzIDAgb3RoZXJ3aXNlLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4MDgwNiBleGFjdGx5LgoKIEZvcm1hdDogMzItYml0IGludGVnZXIgaW4gbmV0d29yayBieXRlIG9yZGVyLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQNAhgFEgTqBQgOCg0KBQQNAhgBEgTqBQ8WCg0KBQQNAhgDEgTqBRkbCiYKBAQNAhkSBOsFCBwiGCBGb3IgT0ZQWE1UX09GQl9BUlBfVFBBIAoNCgUEDQIZBRIE6wUIDgoNCgUEDQIZARIE6wUPFgoNCgUEDQIZAxIE6wUZGwq3BAoEBA0CGhIE+QUIGxqcAiNkZWZpbmUgT1hNX09GX0FSUF9TSEEgICAgT1hNX0hFQURFUiAgICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1NIQSwgNikKI2RlZmluZSBPWE1fT0ZfQVJQX1NIQV9XICBPWE1fSEVBREVSX1cgKDB4ODAwMCwgT0ZQWE1UX09GQl9BUlBfU0hBLCA2KQojZGVmaW5lIE9YTV9PRl9BUlBfVEhBICAgIE9YTV9IRUFERVIgICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0FSUF9USEEsIDYpCiNkZWZpbmUgT1hNX09GX0FSUF9USEFfVyAgT1hNX0hFQURFUl9XICgweDgwMDAsIE9GUFhNVF9PRkJfQVJQX1RIQSwgNikKIiIgRm9yIE9GUFhNVF9PRkJfQVJQX1NIQSAoNiBieXRlcykgMuUBIEZvciBhbiBFdGhlcm5ldCtJUCBBUlAgcGFja2V0LCB0aGUgc291cmNlIG9yIHRhcmdldCBoYXJkd2FyZSBhZGRyZXNzCiBpbiB0aGUgQVJQIGhlYWRlci4gIEFsd2F5cyAwIG90aGVyd2lzZS4KCiBQcmVyZXFzOiBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDA4MDYgZXhhY3RseS4KCiBGb3JtYXQ6IDQ4LWJpdCBFdGhlcm5ldCBNQUMgYWRkcmVzcy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIaBRIE+QUIDQoNCgUEDQIaARIE+QUOFQoNCgUEDQIaAxIE+QUYGgowCgQEDQIbEgT6BQgbIiIgRm9yIE9GUFhNVF9PRkJfQVJQX1RIQSAoNiBieXRlcykgCg0KBQQNAhsFEgT6BQgNCg0KBQQNAhsBEgT6BQ4VCg0KBQQNAhsDEgT6BRgaCvoDCgQEDQIcEgSIBggcGqQCI2RlZmluZSBPWE1fT0ZfSVBWNl9TUkMgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X1NSQywgMTYpCiNkZWZpbmUgT1hNX09GX0lQVjZfU1JDX1cgIE9YTV9IRUFERVJfVygweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9TUkMsIDE2KQojZGVmaW5lIE9YTV9PRl9JUFY2X0RTVCAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRFNULCAxNikKI2RlZmluZSBPWE1fT0ZfSVBWNl9EU1RfVyAgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0RTVCwgMTYpCiIZIEZvciBPRlBYTVRfT0ZCX0lQVjZfU1JDIDKpASBUaGUgc291cmNlIG9yIGRlc3RpbmF0aW9uIGFkZHJlc3MgaW4gdGhlIElQdjYgaGVhZGVyLgoKIFByZXJlcXM6IE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5LgoKIEZvcm1hdDogMTI4LWJpdCBJUHY2IGFkZHJlc3MuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLgoKDQoFBA0CHAUSBIgGCA0KDQoFBA0CHAESBIgGDhYKDQoFBA0CHAMSBIgGGRsKJwoEBA0CHRIEiQYIHCIZIEZvciBPRlBYTVRfT0ZCX0lQVjZfRFNUIAoNCgUEDQIdBRIEiQYIDQoNCgUEDQIdARIEiQYOFgoNCgUEDQIdAxIEiQYZGwqdAwoEBA0CHhIElwYIIBqaASNkZWZpbmUgT1hNX09GX0lQVjZfRkxBQkVMICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0ZMQUJFTCwgNCkKI2RlZmluZSBPWE1fT0ZfSVBWNl9GTEFCRUxfVyBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX0lQVjZfRkxBQkVMLCA0KQoiHCBGb3IgT0ZQWE1UX09GQl9JUFY2X0ZMQUJFTCAy0wEgVGhlIElQdjYgRmxvdyBMYWJlbAoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5CgogRm9ybWF0OiAzMi1iaXQgaW50ZWdlciB3aXRoIDEyIG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VyIDIwIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IEFyYml0cmFyeSBtYXNrcy4KCg0KBQQNAh4FEgSXBggOCg0KBQQNAh4BEgSXBg8aCg0KBQQNAh4DEgSXBh0fCoMDCgQEDQIfEgSkBgggGpYBI2RlZmluZSBPWE1fT0ZfSUNNUFY2X1RZUEUgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JQ01QVjZfVFlQRSwgMSkKI2RlZmluZSBPWE1fT0ZfSUNNUFY2X0NPREUgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JQ01QVjZfQ09ERSwgMSkKIhwgRm9yIE9GUFhNVF9PRkJfSUNNUFY2X1RZUEUgMr0BIFRoZSB0eXBlIG9yIGNvZGUgaW4gdGhlIElDTVB2NiBoZWFkZXIuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDU4IGV4YWN0bHkuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAh8FEgSkBggOCg0KBQQNAh8BEgSkBg8aCg0KBQQNAh8DEgSkBh0fCioKBAQNAiASBKUGCCAiHCBGb3IgT0ZQWE1UX09GQl9JQ01QVjZfQ09ERSAKDQoFBA0CIAUSBKUGCA4KDQoFBA0CIAESBKUGDxoKDQoFBA0CIAMSBKUGHR8KkQMKBAQNAiESBLMGCCIaVyNkZWZpbmUgT1hNX09GX0lQVjZfTkRfVEFSR0VUIE9YTV9IRUFERVIgXAogICAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X05EX1RBUkdFVCwgMTYpCiIfIEZvciBPRlBYTVRfT0ZCX0lQVjZfTkRfVEFSR0VUIDKIAiBUaGUgdGFyZ2V0IGFkZHJlc3MgaW4gYW4gSVB2NiBOZWlnaGJvciBEaXNjb3ZlcnkgbWVzc2FnZS4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNTggZXhhY3RseS4KICAgT1hNX09GX0lDTVBWNl9UWVBFIG11c3QgYmUgZWl0aGVyIDEzNSBvciAxMzYuCgogRm9ybWF0OiAxMjgtYml0IElQdjYgYWRkcmVzcy4KCiBNYXNraW5nOiBOb3QgbWFza2FibGUuIAoNCgUEDQIhBRIEswYIDQoNCgUEDQIhARIEswYOHAoNCgUEDQIhAxIEswYfIQqXAwoEBA0CIhIEwQYIHxpMI2RlZmluZSBPWE1fT0ZfSVBWNl9ORF9TTEwgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9ORF9TTEwsIDYpCiIcIEZvciBPRlBYTVRfT0ZCX0lQVjZfTkRfU0xMIDKcAiBUaGUgc291cmNlIGxpbmstbGF5ZXIgYWRkcmVzcyBvcHRpb24gaW4gYW4gSVB2NiBOZWlnaGJvciBEaXNjb3ZlcnkKIG1lc3NhZ2UuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4NmRkIGV4YWN0bHkuCiAgIE9YTV9PRl9JUF9QUk9UTyBtdXN0IG1hdGNoIDU4IGV4YWN0bHkuCiAgIE9YTV9PRl9JQ01QVjZfVFlQRSBtdXN0IGJlIGV4YWN0bHkgMTM1LgoKIEZvcm1hdDogNDgtYml0IEV0aGVybmV0IE1BQyBhZGRyZXNzLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAiIFEgTBBggNCg0KBQQNAiIBEgTBBg4ZCg0KBQQNAiIDEgTBBhweCpcDCgQEDQIjEgTPBggfGkwjZGVmaW5lIE9YTV9PRl9JUFY2X05EX1RMTCAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X05EX1RMTCwgNikKIhwgRm9yIE9GUFhNVF9PRkJfSVBWNl9ORF9UTEwgMpwCIFRoZSB0YXJnZXQgbGluay1sYXllciBhZGRyZXNzIG9wdGlvbiBpbiBhbiBJUHY2IE5laWdoYm9yIERpc2NvdmVyeQogbWVzc2FnZS4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg2ZGQgZXhhY3RseS4KICAgT1hNX09GX0lQX1BST1RPIG11c3QgbWF0Y2ggNTggZXhhY3RseS4KICAgT1hNX09GX0lDTVBWNl9UWVBFIG11c3QgYmUgZXhhY3RseSAxMzYuCgogRm9ybWF0OiA0OC1iaXQgRXRoZXJuZXQgTUFDIGFkZHJlc3MuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CIwUSBM8GCA0KDQoFBA0CIwESBM8GDhkKDQoFBA0CIwMSBM8GHB4K/gIKBAQNAiQSBNsGCB8aSiNkZWZpbmUgT1hNX09GX01QTFNfTEFCRUwgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfTVBMU19MQUJFTCwgNCkKIhsgRm9yIE9GUFhNVF9PRkJfTVBMU19MQUJFTCAyhgIgVGhlIExBQkVMIGluIHRoZSBmaXJzdCBNUExTIHNoaW0gaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODg0NyBvciAweDg4NDggZXhhY3RseS4KCiBGb3JtYXQ6IDMyLWJpdCBpbnRlZ2VyIGluIG5ldHdvcmsgYnl0ZSBvcmRlciB3aXRoIDEyIG1vc3Qtc2lnbmlmaWNhbnQKIGJpdHMgZm9yY2VkIHRvIDAuIE9ubHkgdGhlIGxvd2VyIDIwIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAiQFEgTbBggOCg0KBQQNAiQBEgTbBg8ZCg0KBQQNAiQDEgTbBhweCtwCCgQEDQIlEgTnBggcGkcjZGVmaW5lIE9YTV9PRl9NUExTX1RDICAgICBPWE1fSEVBREVSICAoMHg4MDAwLCBPRlBYTVRfT0ZCX01QTFNfVEMsIDEpCiIYIEZvciBPRlBYTVRfT0ZCX01QTFNfVEMgMuoBIFRoZSBUQyBpbiB0aGUgZmlyc3QgTVBMUyBzaGltIGhlYWRlci4KCiBQcmVyZXFzOgogICBPWE1fT0ZfRVRIX1RZUEUgbXVzdCBtYXRjaCAweDg4NDcgb3IgMHg4ODQ4IGV4YWN0bHkuCgogRm9ybWF0OiA4LWJpdCBpbnRlZ2VyIHdpdGggNSBtb3N0LXNpZ25pZmljYW50IGJpdHMgZm9yY2VkIHRvIDAuCiBPbmx5IHRoZSBsb3dlciAzIGJpdHMgaGF2ZSBtZWFuaW5nLgoKIE1hc2tpbmc6IE5vdCBtYXNrYWJsZS4gCg0KBQQNAiUFEgTnBggOCg0KBQQNAiUBEgTnBg8WCg0KBQQNAiUDEgTnBhkbCuQCCgQEDQImEgTzBggdGkkjZGVmaW5lIE9YTV9PRl9NUExTX0JPUyAgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9NUExTX0JPUywgMSkKIhkgRm9yIE9GUFhNVF9PRkJfTVBMU19CT1MgMu8BIFRoZSBCb1MgYml0IGluIHRoZSBmaXJzdCBNUExTIHNoaW0gaGVhZGVyLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODg0NyBvciAweDg4NDggZXhhY3RseS4KCiBGb3JtYXQ6IDgtYml0IGludGVnZXIgd2l0aCA3IG1vc3Qtc2lnbmlmaWNhbnQgYml0cyBmb3JjZWQgdG8gMC4KIE9ubHkgdGhlIGxvd2VzdCBiaXQgaGF2ZSBhIG1lYW5pbmcuCgogTWFza2luZzogTm90IG1hc2thYmxlLiAKDQoFBA0CJgUSBPMGCA4KDQoFBA0CJgESBPMGDxcKDQoFBA0CJgMSBPMGGhwKqgMKBAQNAicSBIIHCB0ajgEjZGVmaW5lIE9YTV9PRl9QQkJfSVNJRCAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfUEJCX0lTSUQsIDMpCiNkZWZpbmUgT1hNX09GX1BCQl9JU0lEX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9QQkJfSVNJRCwgMykKIhkgRm9yIE9GUFhNVF9PRkJfUEJCX0lTSUQgMu8BIElFRUUgODAyLjFhaCBJLVNJRC4KCiBGb3IgYSBwYWNrZXQgd2l0aCBhIFBCQiBoZWFkZXIsIHRoaXMgaXMgdGhlIEktU0lEIGZyb20gdGhlCiBvdXRlcm1vc3Qgc2VydmljZSB0YWcuCgogUHJlcmVxczoKICAgT1hNX09GX0VUSF9UWVBFIG11c3QgbWF0Y2ggMHg4OEU3IGV4YWN0bHkuCgogRm9ybWF0OiAyNC1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLiAKDQoFBA0CJwUSBIIHCA4KDQoFBA0CJwESBIIHDxcKDQoFBA0CJwMSBIIHGhwKvAYKBAQNAigSBJYHCB4alAEjZGVmaW5lIE9YTV9PRl9UVU5ORUxfSUQgICAgT1hNX0hFQURFUiAgKDB4ODAwMCwgT0ZQWE1UX09GQl9UVU5ORUxfSUQsIDgpCiNkZWZpbmUgT1hNX09GX1RVTk5FTF9JRF9XICBPWE1fSEVBREVSX1coMHg4MDAwLCBPRlBYTVRfT0ZCX1RVTk5FTF9JRCwgOCkKIhogRm9yIE9GUFhNVF9PRkJfVFVOTkVMX0lEIDL6BCBMb2dpY2FsIFBvcnQgTWV0YWRhdGEuCgogTWV0YWRhdGEgYXNzb2NpYXRlZCB3aXRoIGEgbG9naWNhbCBwb3J0LgogSWYgdGhlIGxvZ2ljYWwgcG9ydCBwZXJmb3JtcyBlbmNhcHN1bGF0aW9uIGFuZCBkZWNhcHN1bGF0aW9uLCB0aGlzCiBpcyB0aGUgZGVtdWx0aXBsZXhpbmcgZmllbGQgZnJvbSB0aGUgZW5jYXBzdWxhdGlvbiBoZWFkZXIuCiBGb3IgZXhhbXBsZSwgZm9yIGEgcGFja2V0IHJlY2VpdmVkIHZpYSBHUkUgdHVubmVsIGluY2x1ZGluZyBhICgzMi1iaXQpIGtleSwKIHRoZSBrZXkgaXMgc3RvcmVkIGluIHRoZSBsb3cgMzItYml0cyBhbmQgdGhlIGhpZ2ggYml0cyBhcmUgemVyb2VkLgogRm9yIGEgTVBMUyBsb2dpY2FsIHBvcnQsIHRoZSBsb3cgMjAgYml0cyByZXByZXNlbnQgdGhlIE1QTFMgTGFiZWwuCiBGb3IgYSBWeExBTiBsb2dpY2FsIHBvcnQsIHRoZSBsb3cgMjQgYml0cyByZXByZXNlbnQgdGhlIFZOSS4KIElmIHRoZSBwYWNrZXQgaXMgbm90IHJlY2VpdmVkIHRocm91Z2ggYSBsb2dpY2FsIHBvcnQsIHRoZSB2YWx1ZSBpcyAwLgoKIFByZXJlcXM6IE5vbmUuCgogRm9ybWF0OiA2NC1iaXQgaW50ZWdlciBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIuCgogTWFza2luZzogQXJiaXRyYXJ5IG1hc2tzLiAKDQoFBA0CKAUSBJYHCA4KDQoFBA0CKAESBJYHDxgKDQoFBA0CKAMSBJYHGx0KqAMKBAQNAikSBKMHCCAamgEjZGVmaW5lIE9YTV9PRl9JUFY2X0VYVEhEUiAgIE9YTV9IRUFERVIgICgweDgwMDAsIE9GUFhNVF9PRkJfSVBWNl9FWFRIRFIsIDIpCiNkZWZpbmUgT1hNX09GX0lQVjZfRVhUSERSX1cgT1hNX0hFQURFUl9XKDB4ODAwMCwgT0ZQWE1UX09GQl9JUFY2X0VYVEhEUiwgMikKIhwgRm9yIE9GUFhNVF9PRkJfSVBWNl9FWFRIRFIgMt4BIFRoZSBJUHY2IEV4dGVuc2lvbiBIZWFkZXIgcHNldWRvLWZpZWxkLgoKIFByZXJlcXM6CiAgIE9YTV9PRl9FVEhfVFlQRSBtdXN0IG1hdGNoIDB4ODZkZCBleGFjdGx5Cgog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LgogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX3BvcnRfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfcG9ydF9zdGF0cy4gCg0KBQUuAgQBEgSpDQQUCg0KBQUuAgQCEgSpDRcYCpcBCgQFLgIFEgSuDQQUGogBIFF1ZXVlIHN0YXRpc3RpY3MgZm9yIGEgcG9ydAogVGhlIHJlcXVlc3QgYm9keSBpcyBzdHJ1Y3Qgb2ZwX3F1ZXVlX3N0YXRzX3JlcXVlc3QuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX3F1ZXVlX3N0YXRzIAoNCgUFLgIFARIErg0EDwoNCgUFLgIFAhIErg0SEwqRAQoEBS4CBhIEsw0EFBqCASBHcm91cCBjb3VudGVyIHN0YXRpc3RpY3MuCiBUaGUgcmVxdWVzdCBib2R5IGlzIHN0cnVjdCBvZnBfZ3JvdXBfc3RhdHNfcmVxdWVzdC4KIFRoZSByZXBseSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX2dyb3VwX3N0YXRzLiAKDQoFBS4CBgESBLMNBA8KDQoFBS4CBgISBLMNEhMKdAoEBS4CBxIEuA0EGRpmIEdyb3VwIGRlc2NyaXB0aW9uLgogVGhlIHJlcXVlc3QgYm9keSBpcyBlbXB0eS4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfZ3JvdXBfZGVzYy4gCg0KBQUuAgcBEgS4DQQUCg0KBQUuAgcCEgS4DRcYCmkKBAUuAggSBL0NBB0aWyBHcm91cCBmZWF0dXJlcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBzdHJ1Y3Qgb2ZwX2dyb3VwX2ZlYXR1cmVzLiAKDQoFBS4CCAESBL0NBBgKDQoFBS4CCAISBL0NGxwKkwEKBAUuAgkSBMINBBQahAEgTWV0ZXIgc3RhdGlzdGljcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdHMuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX21ldGVyX3N0YXRzLiAKDQoFBS4CCQESBMINBA8KDQoFBS4CCQISBMINEhMKlwEKBAUuAgoSBMcNBBwaiAEgTWV0ZXIgY29uZmlndXJhdGlvbi4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgc3RydWN0IG9mcF9tZXRlcl9tdWx0aXBhcnRfcmVxdWVzdHMuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX21ldGVyX2NvbmZpZy4gCg0KBQUuAgoBEgTHDQQWCg0KBQUuAgoCEgTHDRkbCmkKBAUuAgsSBMwNBB4aWyBNZXRlciBmZWF0dXJlcy4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBzdHJ1Y3Qgb2ZwX21ldGVyX2ZlYXR1cmVzLiAKDQoFBS4CCwESBMwNBBgKDQoFBS4CCwISBMwNGx0KsQIKBAUuAgwSBNQNBB4aogIgVGFibGUgZmVhdHVyZXMuCiBUaGUgcmVxdWVzdCBib2R5IGlzIGVpdGhlciBlbXB0eSBvciBjb250YWlucyBhbiBhcnJheSBvZgogc3RydWN0IG9mcF90YWJsZV9mZWF0dXJlcyBjb250YWluaW5nIHRoZSBjb250cm9sbGVyJ3MKIGRlc2lyZWQgdmlldyBvZiB0aGUgc3dpdGNoLiBJZiB0aGUgc3dpdGNoIGlzIHVuYWJsZSB0bwogc2V0IHRoZSBzcGVjaWZpZWQgdmlldyBhbiBlcnJvciBpcyByZXR1cm5lZC4KIFRoZSByZXBseSBib2R5IGlzIGFuIGFycmF5IG9mIHN0cnVjdCBvZnBfdGFibGVfZmVhdHVyZXMuIAoNCgUFLgIMARIE1A0EGAoNCgUFLgIMAhIE1A0bHQptCgQFLgINEgTZDQQZGl8gUG9ydCBkZXNjcmlwdGlvbi4KIFRoZSByZXF1ZXN0IGJvZHkgaXMgZW1wdHkuCiBUaGUgcmVwbHkgYm9keSBpcyBhbiBhcnJheSBvZiBzdHJ1Y3Qgb2ZwX3BvcnQuIAoNCgUFLgINARIE2Q0EEwoNCgUFLgINAhIE2Q0WGAq+AQoEBS4CDhIE3w0EIBqvASBFeHBlcmltZW50ZXIgZXh0ZW5zaW9uLgogVGhlIHJlcXVlc3QgYW5kIHJlcGx5IGJvZGllcyBiZWdpbiB3aXRoCiBzdHJ1Y3Qgb2ZwX2V4cGVyaW1lbnRlcl9tdWx0aXBhcnRfaGVhZGVyLgogVGhlIHJlcXVlc3QgYW5kIHJlcGx5IGJvZGllcyBhcmUgb3RoZXJ3aXNlIGV4cGVyaW1lbnRlci1kZWZpbmVkLiAKDQoFBS4CDgESBN8NBBYKDQoFBS4CDgISBN8NGR8KfAoCBS8SBuUNAOgNATI9IEJhY2t3YXJkIGNvbXBhdGliaWxpdHkgd2l0aCAxLjMuMSAtIGF2b2lkIGJyZWFraW5nIHRoZSBBUEkuIDIvI2RlZmluZSBvZnBfbXVsdGlwYXJ0X3R5cGVzIG9mcF9tdWx0aXBhcnRfdHlwZQoKCwoDBS8BEgTlDQUgCgwKBAUvAgASBOYNBBsKDQoFBS8CAAESBOYNBBYKDQoFBS8CAAISBOYNGRoKKAoEBS8CARIE5w0EGSIaIE1vcmUgcmVxdWVzdHMgdG8gZm9sbG93LiAKDQoFBS8CAQESBOcNBBMKDQoFBS8CAQISBOcNFxgKDAoCBCsSBuoNAO8NAQoLCgMEKwESBOoNCB0KQgoEBCsCABIE7A0EIBoTb2ZwX2hlYWRlciBoZWFkZXI7CiIfIE9uZSBvZiB0aGUgT0ZQTVBfKiBjb25zdGFudHMuIAoPCgUEKwIABBIG7A0E6g0fCg0KBQQrAgAGEgTsDQQWCg0KBQQrAgABEgTsDRcbCg0KBQQrAgADEgTsDR4fCiMKBAQrAgESBO0NBBUiFSBPRlBNUEZfUkVRXyogZmxhZ3MuIAoPCgUEKwIBBBIG7Q0E7A0gCg0KBQQrAgEFEgTtDQQKCg0KBQQrAgEBEgTtDQsQCg0KBQQrAgEDEgTtDRMUCjUKBAQrAgISBO4NBBMiJyBCb2R5IG9mIHRoZSByZXF1ZXN0LiAwIG9yIG1vcmUgYnl0ZXMuIAoPCgUEKwICBBIG7g0E7Q0VCg0KBQQrAgIFEgTuDQQJCg0KBQQrAgIBEgTuDQoOCg0KBQQrAgIDEgTuDRESCgwKAgUwEgbxDQD0DQEKCwoDBTABEgTxDQUeCgwKBAUwAgASBPINBB0KDQoFBTACAAESBPINBBgKDQoFBTACAAISBPINGxwKJwoEBTACARIE8w0EGyIZIE1vcmUgcmVwbGllcyB0byBmb2xsb3cuIAoNCgUFMAIBARIE8w0EFQoNCgUFMAIBAhIE8w0ZGgoMCgIELBIG9g0A+w0BCgsKAwQsARIE9g0IGwpCCgQELAIAEgT4DQQgGhNvZnBfaGVhZGVyIGhlYWRlcjsKIh8gT25lIG9mIHRoZSBPRlBNUF8qIGNvbnN0YW50cy4gCg8KBQQsAgAEEgb4DQT2DR0KDQoFBCwCAAYSBPgNBBYKDQoFBCwCAAESBPgNFxsKDQoFBCwCAAMSBPgNHh8KJQoEBCwCARIE+Q0EFSIXIE9GUE1QRl9SRVBMWV8qIGZsYWdzLiAKDwoFBCwCAQQSBvkNBPgNIAoNCgUELAIBBRIE+Q0ECgoNCgUELAIBARIE+Q0LEAoNCgUELAIBAxIE+Q0TFAozCgQELAICEgT6DQQTIiUgQm9keSBvZiB0aGUgcmVwbHkuIDAgb3IgbW9yZSBieXRlcy4gCg8KBQQsAgIEEgb6DQT5DRUKDQoFBCwCAgUSBPoNBAkKDQoFBCwCAgESBPoNCg4KDQoFBCwCAgMSBPoNERIKmwEKAgQtEgaBDgCHDgEaViBCb2R5IG9mIHJlcGx5IHRvIE9GUE1QX0RFU0MgcmVxdWVzdC4gIEVhY2ggZW50cnkgaXMgYSBOVUxMLXRlcm1pbmF0ZWQKIEFTQ0lJIHN0cmluZy4gMjUjZGVmaW5lIERFU0NfU1RSX0xFTiAgIDI1NgojZGVmaW5lIFNFUklBTF9OVU1fTEVOIDMyCgoLCgMELQESBIEOCBAKKQoEBC0CABIEgg4EGCIbIE1hbnVmYWN0dXJlciBkZXNjcmlwdGlvbi4gCg8KBQQtAgAEEgaCDgSBDhIKDQoFBC0CAAUSBIIOBAoKDQoFBC0CAAESBIIOCxMKDQoFBC0CAAMSBIIOFhcKJQoEBC0CARIEgw4EFyIXIEhhcmR3YXJlIGRlc2NyaXB0aW9uLiAKDwoFBC0CAQQSBoMOBIIOGAoNCgUELQIBBRIEgw4ECgoNCgUELQIBARIEgw4LEgoNCgUELQIBAxIEgw4VFgolCgQELQICEgSEDgQXIhcgU29mdHdhcmUgZGVzY3JpcHRpb24uIAoPCgUELQICBBIGhA4Egw4XCg0KBQQtAgIFEgSEDgQKCg0KBQQtAgIBEgSEDgsSCg0KBQQtAgIDEgSEDhUWCh4KBAQtAgMSBIUOBBoiECBTZXJpYWwgbnVtYmVyLiAKDwoFBC0CAwQSBoUOBIQOFwoNCgUELQIDBRIEhQ4ECgoNCgUELQIDARIEhQ4LFQoNCgUELQIDAxIEhQ4YGQo3CgQELQIEEgSGDgQXIikgSHVtYW4gcmVhZGFibGUgZGVzY3JpcHRpb24gb2YgZGF0YXBhdGguIAoPCgUELQIEBBIGhg4EhQ4aCg0KBQQtAgQFEgSGDgQKCg0KBQQtAgQBEgSGDgsSCg0KBQQtAgQDEgSGDhUWCkIKAgQuEgaKDgCZDgEaNCBCb2R5IGZvciBvZnBfbXVsdGlwYXJ0X3JlcXVlc3Qgb2YgdHlwZSBPRlBNUF9GTE9XLiAKCwoDBC4BEgSKDggeClUKBAQuAgASBIsOBBgiRyBJRCBvZiB0YWJsZSB0byByZWFkIChmcm9tIG9mcF90YWJsZV9zdGF0cyksCk9GUFRUX0FMTCBmb3IgYWxsIHRhYmxlcy4gCg8KBQQuAgAEEgaLDgSKDiAKDQoFBC4CAAUSBIsOBAoKDQoFBC4CAAESBIsOCxMKDQoFBC4CAAMSBIsOFhcKegoEBC4CARIEjQ4EGCJsIFJlcXVpcmUgbWF0Y2hpbmcgZW50cmllcyB0byBpbmNsdWRlIHRoaXMKYXMgYW4gb3V0cHV0IHBvcnQuICBBIHZhbHVlIG9mIE9GUFBfQU5ZCmluZGljYXRlcyBubyByZXN0cmljdGlvbi4gCg8KBQQuAgEEEgaNDgSLDhgKDQoFBC4CAQUSBI0OBAoKDQoFBC4CAQESBI0OCxMKDQoFBC4CAQMSBI0OFhcKewoEBC4CAhIEkA4EGSJtIFJlcXVpcmUgbWF0Y2hpbmcgZW50cmllcyB0byBpbmNsdWRlIHRoaXMKYXMgYW4gb3V0cHV0IGdyb3VwLiAgQSB2YWx1ZSBvZiBPRlBHX0FOWQppbmRpY2F0ZXMgbm8gcmVzdHJpY3Rpb24uIAoPCgUELgICBBIGkA4EjQ4YCg0KBQQuAgIFEgSQDgQKCg0KBQQuAgIBEgSQDgsUCg0KBQQuAgIDEgSQDhcYCkUKBAQuAgMSBJMOBBYiNyBSZXF1aXJlIG1hdGNoaW5nIGVudHJpZXMgdG8gY29udGFpbiB0aGlzCmNvb2tpZSB2YWx1ZSAKDwoFBC4CAwQSBpMOBJAOGQoNCgUELgIDBRIEkw4ECgoNCgUELgIDARIEkw4LEQoNCgUELgIDAxIEkw4UFQptCgQELgIEEgSVDgQbIl8gTWFzayB1c2VkIHRvIHJlc3RyaWN0IHRoZSBjb29raWUgYml0cyB0aGF0Cm11c3QgbWF0Y2guIEEgdmFsdWUgb2YgMCBpbmRpY2F0ZXMKbm8gcmVzdHJpY3Rpb24uIAoPCgUELgIEBBIGlQ4Ekw4WCg0KBQQuAgQFEgSVDgQKCg0KBQQuAgQBEgSVDgsWCg0KBQQuAgQDEgSVDhkaCi8KBAQuAgUSBJgOBBgiISBGaWVsZHMgdG8gbWF0Y2guIFZhcmlhYmxlIHNpemUuIAoPCgUELgIFBBIGmA4ElQ4bCg0KBQQuAgUGEgSYDgQNCg0KBQQuAgUBEgSYDg4TCg0KBQQuAgUDEgSYDhYXCjQKAgQvEgacDgCsDgEaJiBCb2R5IG9mIHJlcGx5IHRvIE9GUE1QX0ZMT1cgcmVxdWVzdC4gCgsKAwQvARIEnA4IFgowCgQELwIAEgSdDgQTIiIgVW5pcXVlIElEIG9mIGZsb3cgd2l0aGluIGRldmljZS4gCg8KBQQvAgAEEgadDgScDhgKDQoFBC8CAAUSBJ0OBAoKDQoFBC8CAAESBJ0OCw0KDQoFBC8CAAMSBJ0OEBIKKwoEBC8CARIEng4EGCIdIElEIG9mIHRhYmxlIGZsb3cgY2FtZSBmcm9tLiAKDwoFBC8CAQQSBp4OBJ0OEwoNCgUELwIBBRIEng4ECgoNCgUELwIBARIEng4LEwoNCgUELwIBAxIEng4WFwo0CgQELwICEgSfDgQcIiYgVGltZSBmbG93IGhhcyBiZWVuIGFsaXZlIGluIHNlY29uZHMuIAoPCgUELwICBBIGnw4Eng4YCg0KBQQvAgIFEgSfDgQKCg0KBQQvAgIBEgSfDgsXCg0KBQQvAgIDEgSfDhobCkwKBAQvAgMSBKAOBB0iPiBUaW1lIGZsb3cgaGFzIGJlZW4gYWxpdmUgaW4gbmFub3NlY29uZHMKYmV5b25kIGR1cmF0aW9uX3NlYy4gCg8KBQQvAgMEEgagDgSfDhwKDQoFBC8CAwUSBKAOBAoKDQoFBC8CAwESBKAOCxgKDQoFBC8CAwMSBKAOGxwKJgoEBC8CBBIEog4EGCIYIFByaW9yaXR5IG9mIHRoZSBlbnRyeS4gCg8KBQQvAgQEEgaiDgSgDh0KDQoFBC8CBAUSBKIOBAoKDQoFBC8CBAESBKIOCxMKDQoFBC8CBAMSBKIOFhcKOQoEBC8CBRIEow4EHCIrIE51bWJlciBvZiBzZWNvbmRzIGlkbGUgYmVmb3JlIGV4cGlyYXRpb24uIAoPCgUELwIFBBIGow4Eog4YCg0KBQQvAgUFEgSjDgQKCg0KBQQvAgUBEgSjDgsXCg0KBQQvAgUDEgSjDhobCjQKBAQvAgYSBKQOBBwiJiBOdW1iZXIgb2Ygc2Vjb25kcyBiZWZvcmUgZXhwaXJhdGlvbi4gCg8KBQQvAgYEEgakDgSjDhwKDQoFBC8CBgUSBKQOBAoKDQoFBC8CBgESBKQOCxcKDQoFBC8CBgMSBKQOGhsKKAoEBC8CBxIEpQ4EFSIaIEJpdG1hcCBvZiBPRlBGRl8qIGZsYWdzLiAKDwoFBC8CBwQSBqUOBKQOHAoNCgUELwIHBRIEpQ4ECgoNCgUELwIHARIEpQ4LEAoNCgUELwIHAxIEpQ4TFAo0CgQELwIIEgSmDgQWIiYgT3BhcXVlIGNvbnRyb2xsZXItaXNzdWVkIGlkZW50aWZpZXIuIAoPCgUELwIIBBIGpg4EpQ4VCg0KBQQvAggFEgSmDgQKCg0KBQQvAggBEgSmDgsRCg0KBQQvAggDEgSmDhQVCioKBAQvAgkSBKcOBBwiHCBOdW1iZXIgb2YgcGFja2V0cyBpbiBmbG93LiAKDwoFBC8CCQQSBqcOBKYOFgoNCgUELwIJBRIEpw4ECgoNCgUELwIJARIEpw4LFwoNCgUELwIJAxIEpw4aGwooCgQELwIKEgSoDgQbIhogTnVtYmVyIG9mIGJ5dGVzIGluIGZsb3cuIAoPCgUELwIKBBIGqA4Epw4cCg0KBQQvAgoFEgSoDgQKCg0KBQQvAgoBEgSoDgsVCg0KBQQvAgoDEgSoDhgaCjUKBAQvAgsSBKkOBBkiJyBEZXNjcmlwdGlvbiBvZiBmaWVsZHMuIFZhcmlhYmxlIHNpemUuIAoPCgUELwILBBIGqQ4EqA4bCg0KBQQvAgsGEgSpDgQNCg0KBQQvAgsBEgSpDg4TCg0KBQQvAgsDEgSpDhYYCisKBAQvAgwSBKoOBC8iHSBJbnN0cnVjdGlvbiBzZXQKKDAgb3IgbW9yZSkgCg0KBQQvAgwEEgSqDgQMCg0KBQQvAgwGEgSqDg0cCg0KBQQvAgwBEgSqDh0pCg0KBQQvAgwDEgSqDiwuCkcKAgQwEgavDgC+DgEaOSBCb2R5IGZvciBvZnBfbXVsdGlwYXJ0X3JlcXVlc3Qgb2YgdHlwZSBPRlBNUF9BR0dSRUdBVEUuIAoLCgMEMAESBK8OCCMKVAoEBDACABIEsA4EGCJGIElEIG9mIHRhYmxlIHRvIHJlYWQgKGZyb20gb2ZwX3RhYmxlX3N0YXRzKQpPRlBUVF9BTEwgZm9yIGFsbCB0YWJsZXMuIAoPCgUEMAIABBIGsA4Erw4lCg0KBQQwAgAFEgSwDgQKCg0KBQQwAgABEgSwDgsTCg0KBQQwAgADEgSwDhYXCnoKBAQwAgESBLIOBBgibCBSZXF1aXJlIG1hdGNoaW5nIGVudHJpZXMgdG8gaW5jbHVkZSB0aGlzCmFzIGFuIG91dHB1dCBwb3J0LiAgQSB2YWx1ZSBvZiBPRlBQX0FOWQppbmRpY2F0ZXMgbm8gcmVzdHJpY3Rpb24uIAoPCgUEMAIBBBIGsg4EsA4YCg0KBQQwAgEFEgSyDgQKCg0KBQQwAgEBEgSyDgsTCg0KBQQwAgEDEgSyDhYXCnsKBAQwAgISBLUOBBkibSBSZXF1aXJlIG1hdGNoaW5nIGVudHJpZXMgdG8gaW5jbHVkZSB0aGlzCmFzIGFuIG91dHB1dCBncm91cC4gIEEgdmFsdWUgb2YgT0ZQR19BTlkKaW5kaWNhdGVzIG5vIHJlc3RyaWN0aW9uLiAKDwoFBDACAgQSBrUOBLIOGAoNCgUEMAICBRIEtQ4ECgoNCgUEMAICARIEtQ4LFAoNCgUEMAICAxIEtQ4XGApFCgQEMAIDEgS4DgQWIjcgUmVxdWlyZSBtYXRjaGluZyBlbnRyaWVzIHRvIGNvbnRhaW4gdGhpcwpjb29raWUgdmFsdWUgCg8KBQQwAgMEEga4DgS1DhkKDQoFBDACAwUSBLgOBAoKDQoFBDACAwESBLgOCxEKDQoFBDACAwMSBLgOFBUKbQoEBDACBBIEug4EGyJfIE1hc2sgdXNlZCB0byByZXN0cmljdCB0aGUgY29va2llIGJpdHMgdGhhdAptdXN0IG1hdGNoLiBBIHZhbHVlIG9mIDAgaW5kaWNhdGVzCm5vIHJlc3RyaWN0aW9uLiAKDwoFBDACBAQSBroOBLgOFgoNCgUEMAIEBRIEug4ECgoNCgUEMAIEARIEug4LFgoNCgUEMAIEAxIEug4ZGgovCgQEMAIFEgS9DgQYIiEgRmllbGRzIHRvIG1hdGNoLiBWYXJpYWJsZSBzaXplLiAKDwoFBDACBQQSBr0OBLoOGwoNCgUEMAIFBhIEvQ4EDQoNCgUEMAIFARIEvQ4OEwoNCgUEMAIFAxIEvQ4WFwo5CgIEMRIGwQ4AxQ4BGisgQm9keSBvZiByZXBseSB0byBPRlBNUF9BR0dSRUdBVEUgcmVxdWVzdC4gCgsKAwQxARIEwQ4IIQorCgQEMQIAEgTCDgQcIh0gTnVtYmVyIG9mIHBhY2tldHMgaW4gZmxvd3MuIAoPCgUEMQIABBIGwg4EwQ4jCg0KBQQxAgAFEgTCDgQKCg0KBQQxAgABEgTCDgsXCg0KBQQxAgADEgTCDhobCikKBAQxAgESBMMOBBoiGyBOdW1iZXIgb2YgYnl0ZXMgaW4gZmxvd3MuIAoPCgUEMQIBBBIGww4Ewg4cCg0KBQQxAgEFEgTDDgQKCg0KBQQxAgEBEgTDDgsVCg0KBQQxAgEDEgTDDhgZCiAKBAQxAgISBMQOBBoiEiBOdW1iZXIgb2YgZmxvd3MuIAoPCgUEMQICBBIGxA4Eww4aCg0KBQQxAgIFEgTEDgQKCg0KBQQxAgIBEgTEDgsVCg0KBQQxAgIDEgTEDhgZCrsBCgIFMRIGyw4A3A4BGqwBIFRhYmxlIEZlYXR1cmUgcHJvcGVydHkgdHlwZXMuCiBMb3cgb3JkZXIgYml0IGNsZWFyZWQgaW5kaWNhdGVzIGEgcHJvcGVydHkgZm9yIGEgcmVndWxhciBGbG93IEVudHJ5LgogTG93IG9yZGVyIGJpdCBzZXQgaW5kaWNhdGVzIGEgcHJvcGVydHkgZm9yIHRoZSBUYWJsZS1NaXNzIEZsb3cgRW50cnkuCgoLCgMFMQESBMsOBSAKJgoEBTECABIEzA4EJyIYIEluc3RydWN0aW9ucyBwcm9wZXJ0eS4gCg0KBQUxAgABEgTMDgQYCg0KBQUxAgACEgTMDiUmCiwKBAUxAgESBM0OBCciHiBJbnN0cnVjdGlvbnMgZm9yIHRhYmxlLW1pc3MuIAoNCgUFMQIBARIEzQ4EHQoNCgUFMQIBAhIEzQ4lJgokCgQFMQICEgTODgQnIhYgTmV4dCBUYWJsZSBwcm9wZXJ0eS4gCg0KBQUxAgIBEgTODgQXCg0KBQUxAgICEgTODiUmCioKBAUxAgMSBM8OBCciHCBOZXh0IFRhYmxlIGZvciB0YWJsZS1taXNzLiAKDQoFBTECAwESBM8OBBwKDQoFBTECAwISBM8OJSYKJwoEBTECBBIE0A4EJyIZIFdyaXRlIEFjdGlvbnMgcHJvcGVydHkuIAoNCgUFMQIEARIE0A4EGQoNCgUFMQIEAhIE0A4lJgotCgQFMQIFEgTRDgQnIh8gV3JpdGUgQWN0aW9ucyBmb3IgdGFibGUtbWlzcy4gCg0KBQUxAgUBEgTRDgQeCg0KBQUxAgUCEgTRDiUmCicKBAUxAgYSBNIOBCciGSBBcHBseSBBY3Rpb25zIHByb3BlcnR5LiAKDQoFBTECBgESBNIOBBkKDQoFBTECBgISBNIOJSYKLQoEBTECBxIE0w4EJyIfIEFwcGx5IEFjdGlvbnMgZm9yIHRhYmxlLW1pc3MuIAoNCgUFMQIHARIE0w4EHgoNCgUFMQIHAhIE0w4lJgofCgQFMQIIEgTUDgQnIhEgTWF0Y2ggcHJvcGVydHkuIAoNCgUFMQIIARIE1A4EEQoNCgUFMQIIAhIE1A4lJgojCgQFMQIJEgTVDgQoIhUgV2lsZGNhcmRzIHByb3BlcnR5LiAKDQoFBTECCQESBNUOBBUKDQoFBTECCQISBNUOJScKKQoEBTECChIE1g4EKCIbIFdyaXRlIFNldC1GaWVsZCBwcm9wZXJ0eS4gCg0KBQUxAgoBEgTWDgQaCg0KBQUxAgoCEgTWDiUnCi8KBAUxAgsSBNcOBCgiISBXcml0ZSBTZXQtRmllbGQgZm9yIHRhYmxlLW1pc3MuIAoNCgUFMQILARIE1w4EHwoNCgUFMQILAhIE1w4lJwopCgQFMQIMEgTYDgQoIhsgQXBwbHkgU2V0LUZpZWxkIHByb3BlcnR5LiAKDQoFBTECDAESBNgOBBoKDQoFBTECDAISBNgOJScKLwoEBTECDRIE2Q4EKCIhIEFwcGx5IFNldC1GaWVsZCBmb3IgdGFibGUtbWlzcy4gCg0KBQUxAg0BEgTZDgQfCg0KBQUxAg0CEgTZDiUnCiYKBAUxAg4SBNoOBCwiGCBFeHBlcmltZW50ZXIgcHJvcGVydHkuIAoNCgUFMQIOARIE2g4EGAoNCgUFMQIOAhIE2g4lKwosCgQFMQIPEgTbDgQsIh4gRXhwZXJpbWVudGVyIGZvciB0YWJsZS1taXNzLiAKDQoFBTECDwESBNsOBB0KDQoFBTECDwISBNsOJSsKPgoCBDISBt8OAOgOARowIENvbW1vbiBoZWFkZXIgZm9yIGFsbCBUYWJsZSBGZWF0dXJlIFByb3BlcnRpZXMgCgsKAwQyARIE3w4IIgohCgQEMgIAEgTgDgQpIhMgT25lIG9mIE9GUFRGUFRfKi4gCg8KBQQyAgAEEgbgDgTfDiQKDQoFBDICAAYSBOAOBB8KDQoFBDICAAESBOAOICQKDQoFBDICAAMSBOAOJygKDgoEBDIIABIG4Q4E5w4FCg0KBQQyCAABEgThDgoPCgwKBAQyAgESBOIOCD0KDQoFBDICAQYSBOIOCCsKDQoFBDICAQESBOIOLDgKDQoFBDICAQMSBOIOOzwKDAoEBDICAhIE4w4IOwoNCgUEMgICBhIE4w4IKgoNCgUEMgICARIE4w4rNgoNCgUEMgICAxIE4w45OgoMCgQEMgIDEgTkDggzCg0KBQQyAgMGEgTkDggmCg0KBQQyAgMBEgTkDicuCg0KBQQyAgMDEgTkDjEyCgwKBAQyAgQSBOUOCCsKDQoFBDICBAYSBOUOCCIKDQoFBDICBAESBOUOIyYKDQoFBDICBAMSBOUOKSoKDAoEBDICBRIE5g4IPQoNCgUEMgIFBhIE5g4IKwoNCgUEMgIFARIE5g4sOAoNCgUEMgIFAxIE5g47PAolCgIEMxIG6w4A7w4BGhcgSW5zdHJ1Y3Rpb25zIHByb3BlcnR5IAoLCgMEMwESBOsOCCsKXwoEBDMCABIE7g4ELho5IE9uZSBvZiBPRlBURlBUX0lOU1RSVUNUSU9OUywKT0ZQVEZQVF9JTlNUUlVDVElPTlNfTUlTUy4gIhYgTGlzdCBvZiBpbnN0cnVjdGlvbnMgCg0KBQQzAgAEEgTuDgQMCg0KBQQzAgAGEgTuDg0cCg0KBQQzAgABEgTuDh0pCg0KBQQzAgADEgTuDiwtCiQKAgQ0EgbyDgD2DgEaFiBOZXh0IFRhYmxlcyBwcm9wZXJ0eSAKCwoDBDQBEgTyDggqClsKBAQ0AgASBPUOBCcaNyBPbmUgb2YgT0ZQVEZQVF9ORVhUX1RBQkxFUywKT0ZQVEZQVF9ORVhUX1RBQkxFU19NSVNTLiAiFCBMaXN0IG9mIHRhYmxlIGlkcy4gCg0KBQQ0AgAEEgT1DgQMCg0KBQQ0AgAFEgT1Dg0TCg0KBQQ0AgABEgT1DhQiCg0KBQQ0AgADEgT1DiUmCiAKAgQ1Egb5DgD/DgEaEiBBY3Rpb25zIHByb3BlcnR5IAoLCgMENQESBPkOCCYKjwEKBAQ1AgASBP4OBCQabiBPbmUgb2YgT0ZQVEZQVF9XUklURV9BQ1RJT05TLApPRlBURlBUX1dSSVRFX0FDVElPTlNfTUlTUywKT0ZQVEZQVF9BUFBMWV9BQ1RJT05TLApPRlBURlBUX0FQUExZX0FDVElPTlNfTUlTUy4gIhEgTGlzdCBvZiBhY3Rpb25zIAoNCgUENQIABBIE/g4EDAoNCgUENQIABhIE/g4NFwoNCgUENQIAARIE/g4YHwoNCgUENQIAAxIE/g4iIwrMAQoCBDYSBoIPAIsPARonIE1hdGNoLCBXaWxkY2FyZCBvciBTZXQtRmllbGQgcHJvcGVydHkgIpQBIE9uZSBvZiBPRlBURlBUX01BVENILApPRlBURlBUX1dJTERDQVJEUywKT0ZQVEZQVF9XUklURV9TRVRGSUVMRCwKT0ZQVEZQVF9XUklURV9TRVRGSUVMRF9NSVNTLApPRlBURlBUX0FQUExZX1NFVEZJRUxELApPRlBURlBUX0FQUExZX1NFVEZJRUxEX01JU1MuIAoLCgMENgESBIIPCCIKQAoEBDYCABIEig8EIBoaIFRPRE8gaXMgdGhpcyBhIHVpbnQzMj8/PyAiFiBBcnJheSBvZiBPWE0gaGVhZGVycyAKDQoFBDYCAAQSBIoPBAwKDQoFBDYCAAUSBIoPDRMKDQoFBDYCAAESBIoPFBsKDQoFBDYCAAMSBIoPHh8KMwoCBDcSBo4PAJYPARolIEV4cGVyaW1lbnRlciB0YWJsZSBmZWF0dXJlIHByb3BlcnR5IAoLCgMENwESBI4PCCsKmgEKBAQ3AgASBJEPBCQaOSBPbmUgb2YgT0ZQVEZQVF9FWFBFUklNRU5URVIsCk9GUFRGUFRfRVhQRVJJTUVOVEVSX01JU1MuICJRIEV4cGVyaW1lbnRlciBJRCB3aGljaCB0YWtlcyB0aGUgc2FtZQpmb3JtIGFzIGluIHN0cnVjdApvZnBfZXhwZXJpbWVudGVyX2hlYWRlci4gCg8KBQQ3AgAEEgaRDwSODy0KDQoFBDcCAAUSBJEPBAoKDQoFBDcCAAESBJEPEx8KDQoFBDcCAAMSBJEPIiMKJQoEBDcCARIElA8EICIXIEV4cGVyaW1lbnRlciBkZWZpbmVkLiAKDwoFBDcCAQQSBpQPBJEPJAoNCgUENwIBBRIElA8ECgoNCgUENwIBARIElA8TGwoNCgUENwIBAxIElA8eHwoMCgQENwICEgSVDwQqCg0KBQQ3AgIEEgSVDwQMCg0KBQQ3AgIFEgSVDw0TCg0KBQQ3AgIBEgSVDxQlCg0KBQQ3AgIDEgSVDygpCn0KAgQ4EgaaDwClDwEabyBCb2R5IGZvciBvZnBfbXVsdGlwYXJ0X3JlcXVlc3Qgb2YgdHlwZSBPRlBNUF9UQUJMRV9GRUFUVVJFUy4vCiBCb2R5IG9mIHJlcGx5IHRvIE9GUE1QX1RBQkxFX0ZFQVRVUkVTIHJlcXVlc3QuIAoLCgMEOAESBJoPCBoKUAoEBDgCABIEmw8EGCJCIElkZW50aWZpZXIgb2YgdGFibGUuICBMb3dlciBudW1iZXJlZCB0YWJsZXMKYXJlIGNvbnN1bHRlZCBmaXJzdC4gCg8KBQQ4AgAEEgabDwSaDxwKDQoFBDgCAAUSBJsPBAoKDQoFBDgCAAESBJsPCxMKDQoFBDgCAAMSBJsPFhcKDAoEBDgCARIEnQ8EFAoPCgUEOAIBBBIGnQ8Emw8YCg0KBQQ4AgEFEgSdDwQKCg0KBQQ4AgEBEgSdDwsPCg0KBQQ4AgEDEgSdDxITCjEKBAQ4AgISBJ4PBB4iIyBCaXRzIG9mIG1ldGFkYXRhIHRhYmxlIGNhbiBtYXRjaC4gCg8KBQQ4AgIEEgaeDwSdDxQKDQoFBDgCAgUSBJ4PBAoKDQoFBDgCAgESBJ4PCxkKDQoFBDgCAgMSBJ4PHB0KMQoEBDgCAxIEnw8EHiIjIEJpdHMgb2YgbWV0YWRhdGEgdGFibGUgY2FuIHdyaXRlLiAKDwoFBDgCAwQSBp8PBJ4PHgoNCgUEOAIDBRIEnw8ECgoNCgUEOAIDARIEnw8LGQoNCgUEOAIDAxIEnw8cHQooCgQEOAIEEgSgDwQWIhogQml0bWFwIG9mIE9GUFRDXyogdmFsdWVzIAoPCgUEOAIEBBIGoA8Enw8eCg0KBQQ4AgQFEgSgDwQKCg0KBQQ4AgQBEgSgDwsRCg0KBQQ4AgQDEgSgDxQVCjAKBAQ4AgUSBKEPBBsiIiBNYXggbnVtYmVyIG9mIGVudHJpZXMgc3VwcG9ydGVkLiAKDwoFBDgCBQQSBqEPBKAPFgoNCgUEOAIFBRIEoQ8ECgoNCgUEOAIFARIEoQ8LFgoNCgUEOAIFAxIEoQ8ZGgorCgQEOAIGEgSkDwQ3Gh0gVGFibGUgRmVhdHVyZSBQcm9wZXJ0eSBsaXN0IAoNCgUEOAIGBBIEpA8EDAoNCgUEOAIGBhIEpA8NJwoNCgUEOAIGARIEpA8oMgoNCgUEOAIGAxIEpA81Ngo1CgIEORIGqA8Arg8BGicgQm9keSBvZiByZXBseSB0byBPRlBNUF9UQUJMRSByZXF1ZXN0LiAKCwoDBDkBEgSoDwgXClAKBAQ5AgASBKkPBBgiQiBJZGVudGlmaWVyIG9mIHRhYmxlLiAgTG93ZXIgbnVtYmVyZWQgdGFibGVzCmFyZSBjb25zdWx0ZWQgZmlyc3QuIAoPCgUEOQIABBIGqQ8EqA8ZCg0KBQQ5AgAFEgSpDwQKCg0KBQQ5AgABEgSpDwsTCg0KBQQ5AgADEgSpDxYXCikKBAQ5AgESBKsPBBwiGyBOdW1iZXIgb2YgYWN0aXZlIGVudHJpZXMuIAoPCgUEOQIBBBIGqw8EqQ8YCg0KBQQ5AgEFEgSrDwQKCg0KBQQ5AgEBEgSrDwsXCg0KBQQ5AgEDEgSrDxobCjUKBAQ5AgISBKwPBBwiJyBOdW1iZXIgb2YgcGFja2V0cyBsb29rZWQgdXAgaW4gdGFibGUuIAoPCgUEOQICBBIGrA8Eqw8cCg0KBQQ5AgIFEgSsDwQKCg0KBQQ5AgIBEgSsDwsXCg0KBQQ5AgIDEgSsDxobCjEKBAQ5AgMSBK0PBB0iIyBOdW1iZXIgb2YgcGFja2V0cyB0aGF0IGhpdCB0YWJsZS4gCg8KBQQ5AgMEEgatDwSsDxwKDQoFBDkCAwUSBK0PBAoKDQoFBDkCAwESBK0PCxgKDQoFBDkCAwMSBK0PGxwKQgoCBDoSBrEPALYPARo0IEJvZHkgZm9yIG9mcF9tdWx0aXBhcnRfcmVxdWVzdCBvZiB0eXBlIE9GUE1QX1BPUlQuIAoLCgMEOgESBLEPCB4KmQEKBAQ6AgASBLIPBBciigEgT0ZQTVBfUE9SVCBtZXNzYWdlIG11c3QgcmVxdWVzdCBzdGF0aXN0aWNzCiBlaXRoZXIgZm9yIGEgc2luZ2xlIHBvcnQgKHNwZWNpZmllZCBpbgogcG9ydF9ubykgb3IgZm9yIGFsbCBwb3J0cyAoaWYgcG9ydF9ubyA9PQogT0ZQUF9BTlkpLiAKDwoFBDoCAAQSBrIPBLEPIAoNCgUEOgIABRIEsg8ECgoNCgUEOgIAARIEsg8LEgoNCgUEOgIAAxIEsg8VFgptCgIEOxIGug8A0Q8BGl8gQm9keSBvZiByZXBseSB0byBPRlBNUF9QT1JUIHJlcXVlc3QuIElmIGEgY291bnRlciBpcyB1bnN1cHBvcnRlZCwgc2V0CiB0aGUgZmllbGQgdG8gYWxsIG9uZXMuIAoLCgMEOwESBLoPCBYKDAoEBDsCABIEuw8EFwoPCgUEOwIABBIGuw8Eug8YCg0KBQQ7AgAFEgS7DwQKCg0KBQQ7AgABEgS7DwsSCg0KBQQ7AgADEgS7DxUWCisKBAQ7AgESBLwPBBoiHSBOdW1iZXIgb2YgcmVjZWl2ZWQgcGFja2V0cy4gCg8KBQQ7AgEEEga8DwS7DxcKDQoFBDsCAQUSBLwPBAoKDQoFBDsCAQESBLwPCxUKDQoFBDsCAQMSBLwPGBkKLgoEBDsCAhIEvQ8EGiIgIE51bWJlciBvZiB0cmFuc21pdHRlZCBwYWNrZXRzLiAKDwoFBDsCAgQSBr0PBLwPGgoNCgUEOwICBRIEvQ8ECgoNCgUEOwICARIEvQ8LFQoNCgUEOwICAxIEvQ8YGQopCgQEOwIDEgS+DwQYIhsgTnVtYmVyIG9mIHJlY2VpdmVkIGJ5dGVzLiAKDwoFBDsCAwQSBr4PBL0PGgoNCgUEOwIDBRIEvg8ECgoNCgUEOwIDARIEvg8LEwoNCgUEOwIDAxIEvg8WFwosCgQEOwIEEgS/DwQYIh4gTnVtYmVyIG9mIHRyYW5zbWl0dGVkIGJ5dGVzLiAKDwoFBDsCBAQSBr8PBL4PGAoNCgUEOwIEBRIEvw8ECgoNCgUEOwIEARIEvw8LEwoNCgUEOwIEAxIEvw8WFwowCgQEOwIFEgTADwQaIiIgTnVtYmVyIG9mIHBhY2tldHMgZHJvcHBlZCBieSBSWC4gCg8KBQQ7AgUEEgbADwS/DxgKDQoFBDsCBQUSBMAPBAoKDQoFBDsCBQESBMAPCxUKDQoFBDsCBQMSBMAPGBkKMAoEBDsCBhIEwQ8EGiIiIE51bWJlciBvZiBwYWNrZXRzIGRyb3BwZWQgYnkgVFguIAoPCgUEOwIGBBIGwQ8EwA8aCg0KBQQ7AgYFEgTBDwQKCg0KBQQ7AgYBEgTBDwsVCg0KBQQ7AgYDEgTBDxgZCqYBCgQEOwIHEgTCDwQZIpcBIE51bWJlciBvZiByZWNlaXZlIGVycm9ycy4gIFRoaXMgaXMgYSBzdXBlci1zZXQKb2YgbW9yZSBzcGVjaWZpYyByZWNlaXZlIGVycm9ycyBhbmQgc2hvdWxkIGJlCmdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgc3VtIG9mIGFsbApyeF8qX2VyciB2YWx1ZXMuIAoPCgUEOwIHBBIGwg8EwQ8aCg0KBQQ7AgcFEgTCDwQKCg0KBQQ7AgcBEgTCDwsUCg0KBQQ7AgcDEgTCDxcYCsEBCgQEOwIIEgTGDwQZIrIBIE51bWJlciBvZiB0cmFuc21pdCBlcnJvcnMuICBUaGlzIGlzIGEgc3VwZXItc2V0Cm9mIG1vcmUgc3BlY2lmaWMgdHJhbnNtaXQgZXJyb3JzIGFuZCBzaG91bGQgYmUKZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzdW0gb2YgYWxsCnR4XypfZXJyIHZhbHVlcyAobm9uZSBjdXJyZW50bHkgZGVmaW5lZC4pIAoPCgUEOwIIBBIGxg8Ewg8ZCg0KBQQ7AggFEgTGDwQKCg0KBQQ7AggBEgTGDwsUCg0KBQQ7AggDEgTGDxcYCjEKBAQ7AgkSBMoPBB0iIyBOdW1iZXIgb2YgZnJhbWUgYWxpZ25tZW50IGVycm9ycy4gCg8KBQQ7AgkEEgbKDwTGDxkKDQoFBDsCCQUSBMoPBAoKDQoFBDsCCQESBMoPCxcKDQoFBDsCCQMSBMoPGhwKMgoEBDsCChIEyw8EHCIkIE51bWJlciBvZiBwYWNrZXRzIHdpdGggUlggb3ZlcnJ1bi4gCg8KBQQ7AgoEEgbLDwTKDx0KDQoFBDsCCgUSBMsPBAoKDQoFBDsCCgESBMsPCxYKDQoFBDsCCgMSBMsPGRsKJQoEBDsCCxIEzA8EGyIXIE51bWJlciBvZiBDUkMgZXJyb3JzLiAKDwoFBDsCCwQSBswPBMsPHAoNCgUEOwILBRIEzA8ECgoNCgUEOwILARIEzA8LFQoNCgUEOwILAxIEzA8YGgolCgQEOwIMEgTNDwQbIhcgTnVtYmVyIG9mIGNvbGxpc2lvbnMuIAoPCgUEOwIMBBIGzQ8EzA8bCg0KBQQ7AgwFEgTNDwQKCg0KBQQ7AgwBEgTNDwsVCg0KBQQ7AgwDEgTNDxgaCjQKBAQ7Ag0SBM4PBB0iJiBUaW1lIHBvcnQgaGFzIGJlZW4gYWxpdmUgaW4gc2Vjb25kcy4gCg8KBQQ7Ag0EEgbODwTNDxsKDQoFBDsCDQUSBM4PBAoKDQoFBDsCDQESBM4PCxcKDQoFBDsCDQMSBM4PGhwKTAoEBDsCDhIEzw8EHiI+IFRpbWUgcG9ydCBoYXMgYmVlbiBhbGl2ZSBpbiBuYW5vc2Vjb25kcwpiZXlvbmQgZHVyYXRpb25fc2VjLiAKDwoFBDsCDgQSBs8PBM4PHQoNCgUEOwIOBRIEzw8ECgoNCgUEOwIOARIEzw8LGAoNCgUEOwIOAxIEzw8bHQosCgIEPBIG1A8A1g8BGh4gQm9keSBvZiBPRlBNUF9HUk9VUCByZXF1ZXN0LiAKCwoDBDwBEgTUDwgfCicKBAQ8AgASBNUPBBgiGSBBbGwgZ3JvdXBzIGlmIE9GUEdfQUxMLiAKDwoFBDwCAAQSBtUPBNQPIQoNCgUEPAIABRIE1Q8ECgoNCgUEPAIAARIE1Q8LEwoNCgUEPAIAAxIE1Q8WFwosCgIEPRIG2Q8A3A8BGh4gVXNlZCBpbiBncm91cCBzdGF0cyByZXBsaWVzLiAKCwoDBD0BEgTZDwgaCjYKBAQ9AgASBNoPBBwiKCBOdW1iZXIgb2YgcGFja2V0cyBwcm9jZXNzZWQgYnkgYnVja2V0LiAKDwoFBD0CAAQSBtoPBNkPHAoNCgUEPQIABRIE2g8ECgoNCgUEPQIAARIE2g8LFwoNCgUEPQIAAxIE2g8aGwo0CgQEPQIBEgTbDwQaIiYgTnVtYmVyIG9mIGJ5dGVzIHByb2Nlc3NlZCBieSBidWNrZXQuIAoPCgUEPQIBBBIG2w8E2g8cCg0KBQQ9AgEFEgTbDwQKCg0KBQQ9AgEBEgTbDwsVCg0KBQQ9AgEDEgTbDxgZCjUKAgQ+EgbfDwDqDwEaJyBCb2R5IG9mIHJlcGx5IHRvIE9GUE1QX0dST1VQIHJlcXVlc3QuIAoLCgMEPgESBN8PCBcKIQoEBD4CABIE4A8EGCITIEdyb3VwIGlkZW50aWZpZXIuIAoPCgUEPgIABBIG4A8E3w8ZCg0KBQQ+AgAFEgTgDwQKCg0KBQQ+AgABEgTgDwsTCg0KBQQ+AgADEgTgDxYXCk4KBAQ+AgESBOEPBBkiQCBOdW1iZXIgb2YgZmxvd3Mgb3IgZ3JvdXBzIHRoYXQgZGlyZWN0bHkKZm9yd2FyZCB0byB0aGlzIGdyb3VwLiAKDwoFBD4CAQQSBuEPBOAPGAoNCgUEPgIBBRIE4Q8ECgoNCgUEPgIBARIE4Q8LFAoNCgUEPgIBAxIE4Q8XGAo1CgQEPgICEgTjDwQcIicgTnVtYmVyIG9mIHBhY2tldHMgcHJvY2Vzc2VkIGJ5IGdyb3VwLiAKDwoFBD4CAgQSBuMPBOEPGQoNCgUEPgICBRIE4w8ECgoNCgUEPgICARIE4w8LFwoNCgUEPgICAxIE4w8aGwozCgQEPgIDEgTkDwQaIiUgTnVtYmVyIG9mIGJ5dGVzIHByb2Nlc3NlZCBieSBncm91cC4gCg8KBQQ+AgMEEgbkDwTjDxwKDQoFBD4CAwUSBOQPBAoKDQoFBD4CAwESBOQPCxUKDQoFBD4CAwMSBOQPGBkKNQoEBD4CBBIE5Q8EHCInIFRpbWUgZ3JvdXAgaGFzIGJlZW4gYWxpdmUgaW4gc2Vjb25kcy4gCg8KBQQ+AgQEEgblDwTkDxoKDQoFBD4CBAUSBOUPBAoKDQoFBD4CBAESBOUPCxcKDQoFBD4CBAMSBOUPGhsKTQoEBD4CBRIE5g8EHSI/IFRpbWUgZ3JvdXAgaGFzIGJlZW4gYWxpdmUgaW4gbmFub3NlY29uZHMKYmV5b25kIGR1cmF0aW9uX3NlYy4gCg8KBQQ+AgUEEgbmDwTlDxwKDQoFBD4CBQUSBOYPBAoKDQoFBD4CBQESBOYPCxgKDQoFBD4CBQMSBOYPGxwKKwoEBD4CBhIE6A8EMSIdIE9uZSBjb3VudGVyIHNldCBwZXIKYnVja2V0LiAKDQoFBD4CBgQSBOgPBAwKDQoFBD4CBgYSBOgPDR8KDQoFBD4CBgESBOgPICwKDQoFBD4CBgMSBOgPLzAKOgoCBD8SBu0PAPEPARosIEJvZHkgb2YgcmVwbHkgdG8gT0ZQTVBfR1JPVVBfREVTQyByZXF1ZXN0LiAKCwoDBD8BEgTtDwgWCh8KBAQ/AgASBO4PBBwiESBPbmUgb2YgT0ZQR1RfKi4gCg8KBQQ/AgAEEgbuDwTtDxgKDQoFBD8CAAYSBO4PBBIKDQoFBD8CAAESBO4PExcKDQoFBD8CAAMSBO4PGhsKIQoEBD8CARIE7w8EGCITIEdyb3VwIGlkZW50aWZpZXIuIAoPCgUEPwIBBBIG7w8E7g8cCg0KBQQ/AgEFEgTvDwQKCg0KBQQ/AgEBEgTvDwsTCg0KBQQ/AgEDEgTvDxYXCiwKBAQ/AgISBPAPBCQiHiBMaXN0IG9mIGJ1Y2tldHMgLSAwIG9yIG1vcmUuIAoNCgUEPwICBBIE8A8EDAoNCgUEPwICBhIE8A8NFwoNCgUEPwICARIE8A8YHwoNCgUEPwICAxIE8A8iIwoMCgIEQBIG8w8A9g8BCgsKAwRAARIE8w8IFwoMCgQEQAIAEgT0DwQcCg8KBQRAAgAEEgb0DwTzDxkKDQoFBEACAAYSBPQPBBIKDQoFBEACAAESBPQPExcKDQoFBEACAAMSBPQPGhsKDAoEBEACARIE9Q8EHgoPCgUEQAIBBBIG9Q8E9A8cCg0KBQRAAgEGEgT1DwQTCg0KBQRAAgEBEgT1DxQZCg0KBQRAAgEDEgT1DxwdCpYBCgIFMhIG/A8AghABGhsgR3JvdXAgY29uZmlndXJhdGlvbiBmbGFncyAyPSBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggMS4zLjEgLSBhdm9pZCBicmVha2luZyB0aGUgQVBJLiAyLCNkZWZpbmUgb2ZwX2dyb3VwX2Rlc2Nfc3RhdHMgb2ZwX2dyb3VwX2Rlc2MKCgsKAwUyARIE/A8FGwoMCgQFMgIAEgT9DwQfCg0KBQUyAgABEgT9DwQSCg0KBQUyAgACEgT9Dx0eCjAKBAUyAgESBP4PBB8iIiBTdXBwb3J0IHdlaWdodCBmb3Igc2VsZWN0IGdyb3VwcyAKDQoFBTICAQESBP4PBBgKDQoFBTICAQISBP4PHR4KMgoEBTICAhIE/w8EHyIkIFN1cHBvcnQgbGl2ZW5lc3MgZm9yIHNlbGVjdCBncm91cHMgCg0KBQUyAgIBEgT/DwQaCg0KBQUyAgICEgT/Dx0eCicKBAUyAgMSBIAQBB8iGSBTdXBwb3J0IGNoYWluaW5nIGdyb3VwcyAKDQoFBTICAwESBIAQBBMKDQoFBTICAwISBIAQHR4KMwoEBTICBBIEgRAEHyIlIENoZWNrIGNoYWluaW5nIGZvciBsb29wcyBhbmQgZGVsZXRlIAoNCgUFMgIEARIEgRAEGgoNCgUFMgIEAhIEgRAdHgpOCgIEQRIGhRAAjBABGkAgQm9keSBvZiByZXBseSB0byBPRlBNUF9HUk9VUF9GRUFUVVJFUyByZXF1ZXN0LiBHcm91cCBmZWF0dXJlcy4gCgsKAwRBARIEhRAIGgo6CgQEQQIAEgSGEAQWIiwgQml0bWFwIG9mICgxIDw8IE9GUEdUXyopIHZhbHVlcyBzdXBwb3J0ZWQuIAoPCgUEQQIABBIGhhAEhRAcCg0KBQRBAgAFEgSGEAQKCg0KBQRBAgABEgSGEAwRCg0KBQRBAgADEgSGEBQVCjgKBARBAgESBIcQBB0iKiBCaXRtYXAgb2YgT0ZQR0ZDXyogY2FwYWJpbGl0eSBzdXBwb3J0ZWQuIAoPCgUEQQIBBBIGhxAEhhAWCg0KBQRBAgEFEgSHEAQKCg0KBQRBAgEBEgSHEAwYCg0KBQRBAgEDEgSHEBscCjcKBARBAgISBIgQBCMiKSBNYXhpbXVtIG51bWJlciBvZiBncm91cHMgZm9yIGVhY2ggdHlwZS4KCg0KBQRBAgIEEgSIEAQMCg0KBQRBAgIFEgSIEA0TCg0KBQRBAgIBEgSIEBQeCg0KBQRBAgIDEgSIECEiCjsKBARBAgMSBIoQBCAiLSBCaXRtYXBzIG9mICgxIDw8IE9GUEFUXyopIHZhbHVlcwpzdXBwb3J0ZWQuIAoNCgUEQQIDBBIEihAEDAoNCgUEQQIDBRIEihANEwoNCgUEQQIDARIEihAUGwoNCgUEQQIDAxIEihAeHwpECgIEQhIGjxAAkRABGjYgQm9keSBvZiBPRlBNUF9NRVRFUiBhbmQgT0ZQTVBfTUVURVJfQ09ORklHIHJlcXVlc3RzLiAKCwoDBEIBEgSPEAgjCiwKBARCAgASBJAQBBgiHiBNZXRlciBpbnN0YW5jZSwgb3IgT0ZQTV9BTEwuIAoPCgUEQgIABBIGkBAEjxAlCg0KBQRCAgAFEgSQEAQKCg0KBQRCAgABEgSQEAsTCg0KBQRCAgADEgSQEBYXCi4KAgRDEgaUEACXEAEaICBTdGF0aXN0aWNzIGZvciBlYWNoIG1ldGVyIGJhbmQgCgsKAwRDARIElBAIHAoqCgQEQwIAEgSVEAQoIhwgTnVtYmVyIG9mIHBhY2tldHMgaW4gYmFuZC4gCg8KBQRDAgAEEgaVEASUEB4KDQoFBEMCAAUSBJUQBAoKDQoFBEMCAAESBJUQEiMKDQoFBEMCAAMSBJUQJicKKAoEBEMCARIElhAEJiIaIE51bWJlciBvZiBieXRlcyBpbiBiYW5kLiAKDwoFBEMCAQQSBpYQBJUQKAoNCgUEQwIBBRIElhAECgoNCgUEQwIBARIElhASIQoNCgUEQwIBAxIElhAkJQpHCgIERBIGmhAApBABGjkgQm9keSBvZiByZXBseSB0byBPRlBNUF9NRVRFUiByZXF1ZXN0LiBNZXRlciBzdGF0aXN0aWNzLiAKCwoDBEQBEgSaEAgXCh8KBAREAgASBJsQBB8iESBNZXRlciBpbnN0YW5jZS4gCg8KBQREAgAEEgabEASaEBkKDQoFBEQCAAUSBJsQBAoKDQoFBEQCAAESBJsQEhoKDQoFBEQCAAMSBJsQHR4KLwoEBEQCARIEnBAEISIhIE51bWJlciBvZiBmbG93cyBib3VuZCB0byBtZXRlci4gCg8KBQREAgEEEgacEASbEB8KDQoFBEQCAQUSBJwQBAoKDQoFBEQCAQESBJwQEhwKDQoFBEQCAQMSBJwQHyAKKwoEBEQCAhIEnRAEJiIdIE51bWJlciBvZiBwYWNrZXRzIGluIGlucHV0LiAKDwoFBEQCAgQSBp0QBJwQIQoNCgUERAICBRIEnRAECgoNCgUERAICARIEnRASIQoNCgUERAICAxIEnRAkJQopCgQERAIDEgSeEAQkIhsgTnVtYmVyIG9mIGJ5dGVzIGluIGlucHV0LiAKDwoFBEQCAwQSBp4QBJ0QJgoNCgUERAIDBRIEnhAECgoNCgUERAIDARIEnhASHwoNCgUERAIDAxIEnhAiIwo1CgQERAIEEgSfEAQjIicgVGltZSBtZXRlciBoYXMgYmVlbiBhbGl2ZSBpbiBzZWNvbmRzLiAKDwoFBEQCBAQSBp8QBJ4QJAoNCgUERAIEBRIEnxAECgoNCgUERAIEARIEnxASHgoNCgUERAIEAxIEnxAhIgpNCgQERAIFEgSgEAQkIj8gVGltZSBtZXRlciBoYXMgYmVlbiBhbGl2ZSBpbiBuYW5vc2Vjb25kcwpiZXlvbmQgZHVyYXRpb25fc2VjLiAKDwoFBEQCBQQSBqAQBJ8QIwoNCgUERAIFBRIEoBAECgoNCgUERAIFARIEoBASHwoNCgUERAIFAxIEoBAiIwpICgQERAIGEgSiEAQxIjogVGhlIGJhbmRfc3RhdHMgbGVuZ3RoIGlzCmluZmVycmVkIGZyb20gdGhlIGxlbmd0aCBmaWVsZC4gCg0KBQREAgYEEgSiEAQMCg0KBQREAgYGEgSiEA0hCg0KBQREAgYBEgSiECIsCg0KBQREAgYDEgSiEC8wClEKAgRFEganEACsEAEaQyBCb2R5IG9mIHJlcGx5IHRvIE9GUE1QX01FVEVSX0NPTkZJRyByZXF1ZXN0LiBNZXRlciBjb25maWd1cmF0aW9uLiAKCwoDBEUBEgSnEAgYCicKBARFAgASBKgQBBwiGSBBbGwgT0ZQTUZfKiB0aGF0IGFwcGx5LiAKDwoFBEUCAAQSBqgQBKcQGgoNCgUERQIABRIEqBAECgoNCgUERQIAARIEqBASFwoNCgUERQIAAxIEqBAaGwofCgQERQIBEgSpEAQfIhEgTWV0ZXIgaW5zdGFuY2UuIAoPCgUERQIBBBIGqRAEqBAcCg0KBQRFAgEFEgSpEAQKCg0KBQRFAgEBEgSpEBIaCg0KBQRFAgEDEgSpEB0eCkMKBARFAgISBKoQBC0iNSBUaGUgYmFuZHMgbGVuZ3RoIGlzCmluZmVycmVkIGZyb20gdGhlIGxlbmd0aCBmaWVsZC4gCg0KBQRFAgIEEgSqEAQMCg0KBQRFAgIGEgSqEA0iCg0KBQRFAgIBEgSqECMoCg0KBQRFAgIDEgSqECssCk4KAgRGEgavEAC2EAEaQCBCb2R5IG9mIHJlcGx5IHRvIE9GUE1QX01FVEVSX0ZFQVRVUkVTIHJlcXVlc3QuIE1ldGVyIGZlYXR1cmVzLiAKCwoDBEYBEgSvEAgaCikKBARGAgASBLAQBBwiGyBNYXhpbXVtIG51bWJlciBvZiBtZXRlcnMuIAoPCgUERgIABBIGsBAErxAcCg0KBQRGAgAFEgSwEAQKCg0KBQRGAgABEgSwEA4XCg0KBQRGAgADEgSwEBobCjwKBARGAgESBLEQBB0iLiBCaXRtYXBzIG9mICgxIDw8IE9GUE1CVF8qKSB2YWx1ZXMgc3VwcG9ydGVkLgoKDwoFBEYCAQQSBrEQBLAQHAoNCgUERgIBBRIEsRAECgoNCgUERgIBARIEsRAOGAoNCgUERgIBAxIEsRAbHAotCgQERgICEgSzEAQfIh8gQml0bWFwcyBvZiAib2ZwX21ldGVyX2ZsYWdzIi4gCg8KBQRGAgIEEgazEASxEB0KDQoFBEYCAgUSBLMQBAoKDQoFBEYCAgESBLMQDhoKDQoFBEYCAgMSBLMQHR4KKAoEBEYCAxIEtBAEHCIaIE1heGltdW0gYmFuZHMgcGVyIG1ldGVycyAKDwoFBEYCAwQSBrQQBLMQHwoNCgUERgIDBRIEtBAECgoNCgUERgIDARIEtBAOFwoNCgUERgIDAxIEtBAaGwojCgQERgIEEgS1EAQcIhUgTWF4aW11bSBjb2xvciB2YWx1ZSAKDwoFBEYCBAQSBrUQBLQQHAoNCgUERgIEBRIEtRAECgoNCgUERgIEARIEtRAOFwoNCgUERgIEAxIEtRAaGwoMCgIERxIGuBAAuxABCgsKAwRHARIEuBAIFwoMCgQERwIAEgS5EAQeCg8KBQRHAgAEEga5EAS4EBkKDQoFBEcCAAYSBLkQBBQKDQoFBEcCAAESBLkQFRsKDQoFBEcCAAMSBLkQHB0KDAoEBEcCARIEuhAEHAoPCgUERwIBBBIGuhAEuRAeCg0KBQRHAgEGEgS6EAQTCg0KBQRHAgEBEgS6EBQZCg0KBQRHAgEDEgS6EBobClAKAgRIEga+EADDEAEaQiBCb2R5IGZvciBvZnBfbXVsdGlwYXJ0X3JlcXVlc3QvcmVwbHkgb2YgdHlwZSBPRlBNUF9FWFBFUklNRU5URVIuIAoLCgMESAESBL4QCCkKXwoEBEgCABIEvxAEHCJRIEV4cGVyaW1lbnRlciBJRCB3aGljaCB0YWtlcyB0aGUgc2FtZSBmb3JtCmFzIGluIHN0cnVjdCBvZnBfZXhwZXJpbWVudGVyX2hlYWRlci4gCg8KBQRIAgAEEga/EAS+ECsKDQoFBEgCAAUSBL8QBAoKDQoFBEgCAAESBL8QCxcKDQoFBEgCAAMSBL8QGhsKJQoEBEgCARIEwRAEGCIXIEV4cGVyaW1lbnRlciBkZWZpbmVkLiAKDwoFBEgCAQQSBsEQBL8QHAoNCgUESAIBBRIEwRAECgoNCgUESAIBARIEwRALEwoNCgUESAIBAxIEwRAWFwo/CgQESAICEgTCEAQTIjEgRXhwZXJpbWVudGVyLWRlZmluZWQgYXJiaXRyYXJ5IGFkZGl0aW9uYWwgZGF0YS4gCg8KBQRIAgIEEgbCEATBEBgKDQoFBEgCAgUSBMIQBAkKDQoFBEgCAgESBMIQCg4KDQoFBEgCAgMSBMIQERIKJwoCBEkSBsYQAM0QARoZIEV4cGVyaW1lbnRlciBleHRlbnNpb24uIAoLCgMESQESBMYQCB8KmQEKBARJAgASBMgQBBwaMm9mcF9oZWFkZXIgaGVhZGVyOyAgLyogVHlwZSBPRlBUX0VYUEVSSU1FTlRFUi4gKi8KIlcgRXhwZXJpbWVudGVyIElEOgogLSBNU0IgMDogbG93LW9yZGVyIGJ5dGVzIGFyZSBJRUVFIE9VSS4KIC0gTVNCICE9IDA6IGRlZmluZWQgYnkgT05GLiAKDwoFBEkCAAQSBsgQBMYQIQoNCgUESQIABRIEyBAECgoNCgUESQIAARIEyBALFwoNCgUESQIAAxIEyBAaGwolCgQESQIBEgTLEAQYIhcgRXhwZXJpbWVudGVyIGRlZmluZWQuIAoPCgUESQIBBBIGyxAEyBAcCg0KBQRJAgEFEgTLEAQKCg0KBQRJAgEBEgTLEAsTCg0KBQRJAgEDEgTLEBYXCj8KBARJAgISBMwQBBMiMSBFeHBlcmltZW50ZXItZGVmaW5lZCBhcmJpdHJhcnkgYWRkaXRpb25hbCBkYXRhLiAKDwoFBEkCAgQSBswQBMsQGAoNCgUESQICBRIEzBAECQoNCgUESQICARIEzBAKDgoNCgUESQICAxIEzBAREgqhAgoCBTMSBtgQAN0QATJKIEFsbCBvbmVzIGlzIHVzZWQgdG8gaW5kaWNhdGUgYWxsIHF1ZXVlcyBpbiBhIHBvcnQgKGZvciBzdGF0cyByZXRyaWV2YWwpLiAyISNkZWZpbmUgT0ZQUV9BTEwgICAgICAweGZmZmZmZmZmCjInIE1pbiByYXRlID4gMTAwMCBtZWFucyBub3QgY29uZmlndXJlZC4gMigjZGVmaW5lIE9GUFFfTUlOX1JBVEVfVU5DRkcgICAgICAweGZmZmYKMicgTWF4IHJhdGUgPiAxMDAwIG1lYW5zIG5vdCBjb25maWd1cmVkLiAyKCNkZWZpbmUgT0ZQUV9NQVhfUkFURV9VTkNGRyAgICAgIDB4ZmZmZgoKCwoDBTMBEgTYEAUZCgwKBAUzAgASBNkQBBwKDQoFBTMCAAESBNkQBBEKDQoFBTMCAAISBNkQGhsKLAoEBTMCARIE2hAEHCIeIE1pbmltdW0gZGF0YXJhdGUgZ3VhcmFudGVlZC4gCg0KBQUzAgEBEgTaEAQSCg0KBQUzAgECEgTaEBobCiEKBAUzAgISBNsQBBwiEyBNYXhpbXVtIGRhdGFyYXRlLiAKDQoFBTMCAgESBNsQBBIKDQoFBTMCAgISBNsQGhsKLgoEBTMCAxIE3BAEISIgIEV4cGVyaW1lbnRlciBkZWZpbmVkIHByb3BlcnR5LiAKDQoFBTMCAwESBNwQBBYKDQoFBTMCAwISBNwQGiAKLwoCBEoSBuAQAOMQARohIENvbW1vbiBkZXNjcmlwdGlvbiBmb3IgYSBxdWV1ZS4gCgsKAwRKARIE4BAIHQoeCgQESgIAEgThEAQYIhAgT25lIG9mIE9GUFFUXy4gCg8KBQRKAgAEEgbhEATgEB8KDQoFBEoCAAUSBOEQBAoKDQoFBEoCAAESBOEQCxMKDQoFBEoCAAMSBOEQFhcKOgoEBEoCARIE4hAEEyIsIExlbmd0aCBvZiBwcm9wZXJ0eSwgaW5jbHVkaW5nIHRoaXMgaGVhZGVyLiAKDwoFBEoCAQQSBuIQBOEQGAoNCgUESgIBBRIE4hAECgoNCgUESgIBARIE4hALDgoNCgUESgIBAxIE4hAREgo0CgIESxIG5hAA6RABGiYgTWluLVJhdGUgcXVldWUgcHJvcGVydHkgZGVzY3JpcHRpb24uIAoLCgMESwESBOYQCB8KKQoEBEsCABIE5xAEKiIbIHByb3A6IE9GUFFUX01JTiwgbGVuOiAxNi4gCg8KBQRLAgAEEgbnEATmECEKDQoFBEsCAAYSBOcQBBkKDQoFBEsCAAESBOcQGiUKDQoFBEsCAAMSBOcQKCkKOwoEBEsCARIE6BAEFCItIEluIDEvMTAgb2YgYSBwZXJjZW50ID0gMDs+MTAwMCAtPiBkaXNhYmxlZC4gCg8KBQRLAgEEEgboEATnECoKDQoFBEsCAQUSBOgQBAoKDQoFBEsCAQESBOgQCw8KDQoFBEsCAQMSBOgQEhMKNAoCBEwSBuwQAO8QARomIE1heC1SYXRlIHF1ZXVlIHByb3BlcnR5IGRlc2NyaXB0aW9uLiAKCwoDBEwBEgTsEAgfCikKBARMAgASBO0QBCoiGyBwcm9wOiBPRlBRVF9NQVgsIGxlbjogMTYuIAoPCgUETAIABBIG7RAE7BAhCg0KBQRMAgAGEgTtEAQZCg0KBQRMAgABEgTtEBolCg0KBQRMAgADEgTtECgpCjsKBARMAgESBO4QBBQiLSBJbiAxLzEwIG9mIGEgcGVyY2VudCA9IDA7PjEwMDAgLT4gZGlzYWJsZWQuIAoPCgUETAIBBBIG7hAE7RAqCg0KBQRMAgEFEgTuEAQKCg0KBQRMAgEBEgTuEAsPCg0KBQRMAgEDEgTuEBITCjgKAgRNEgbyEAD4EAEaKiBFeHBlcmltZW50ZXIgcXVldWUgcHJvcGVydHkgZGVzY3JpcHRpb24uIAoLCgMETQESBPIQCCMKKAoEBE0CABIE8xAEKiIaIHByb3A6IE9GUFFUX0VYUEVSSU1FTlRFUiAKDwoFBE0CAAQSBvMQBPIQJQoNCgUETQIABhIE8xAEGQoNCgUETQIAARIE8xAaJQoNCgUETQIAAxIE8xAoKQpfCgQETQIBEgT0EAQcIlEgRXhwZXJpbWVudGVyIElEIHdoaWNoIHRha2VzIHRoZSBzYW1lCmZvcm0gYXMgaW4gc3RydWN0Cm9mcF9leHBlcmltZW50ZXJfaGVhZGVyLiAKDwoFBE0CAQQSBvQQBPMQKgoNCgUETQIBBRIE9BAECgoNCgUETQIBARIE9BALFwoNCgUETQIBAxIE9BAaGwoqCgQETQICEgT3EAQTIhwgRXhwZXJpbWVudGVyIGRlZmluZWQgZGF0YS4gCg8KBQRNAgIEEgb3EAT0EBwKDQoFBE0CAgUSBPcQBAkKDQoFBE0CAgESBPcQCg4KDQoFBE0CAgMSBPcQERIKLQoCBE4SBvsQAP8QARofIEZ1bGwgZGVzY3JpcHRpb24gZm9yIGEgcXVldWUuIAoLCgMETgESBPsQCBgKKgoEBE4CABIE/BAEGCIcIGlkIGZvciB0aGUgc3BlY2lmaWMgcXVldWUuIAoPCgUETgIABBIG/BAE+xAaCg0KBQROAgAFEgT8EAQKCg0KBQROAgABEgT8EAsTCg0KBQROAgADEgT8EBYXCi8KBAROAgESBP0QBBQiISBQb3J0IHRoaXMgcXVldWUgaXMgYXR0YWNoZWQgdG8uIAoPCgUETgIBBBIG/RAE/BAYCg0KBQROAgEFEgT9EAQKCg0KBQROAgEBEgT9EAsPCg0KBQROAgEDEgT9EBITCiMKBAROAgISBP4QBDIiFSBMaXN0IG9mIHByb3BlcnRpZXMuIAoNCgUETgICBBIE/hAEDAoNCgUETgICBhIE/hANIgoNCgUETgICARIE/hAjLQoNCgUETgICAxIE/hAwMQozCgIETxIGghEAiBEBGiUgUXVlcnkgZm9yIHBvcnQgcXVldWUgY29uZmlndXJhdGlvbi4gCgsKAwRPARIEghEIJAqfAQoEBE8CABIEhBEEFBoTb2ZwX2hlYWRlciBoZWFkZXI7CiJ8IFBvcnQgdG8gYmUgcXVlcmllZC4gU2hvdWxkIHJlZmVyCnRvIGEgdmFsaWQgcGh5c2ljYWwgcG9ydCAoaS5lLiA8PSBPRlBQX01BWCksCm9yIE9GUFBfQU5ZIHRvIHJlcXVlc3QgYWxsIGNvbmZpZ3VyZWQKcXVldWVzLgoPCgUETwIABBIGhBEEghEmCg0KBQRPAgAFEgSEEQQKCg0KBQRPAgABEgSEEQsPCg0KBQRPAgADEgSEERITCjUKAgRQEgaLEQCPEQEaJyBRdWV1ZSBjb25maWd1cmF0aW9uIGZvciBhIGdpdmVuIHBvcnQuIAoLCgMEUAESBIsRCCIKIQoEBFACABIEjREEFBoTb2ZwX2hlYWRlciBoZWFkZXI7CgoPCgUEUAIABBIGjREEixEkCg0KBQRQAgAFEgSNEQQKCg0KBQRQAgABEgSNEQsPCg0KBQRQAgADEgSNERITCioKBARQAgESBI4RBCkiHCBMaXN0IG9mIGNvbmZpZ3VyZWQgcXVldWVzLiAKDQoFBFACAQQSBI4RBAwKDQoFBFACAQYSBI4RDR0KDQoFBFACAQESBI4RHiQKDQoFBFACAQMSBI4RJygKUwoCBFESBpIRAJURARpFIE9GUEFUX1NFVF9RVUVVRSBhY3Rpb24gc3RydWN0OiBzZW5kIHBhY2tldHMgdG8gZ2l2ZW4gcXVldWUgb24gcG9ydC4gCgsKAwRRARIEkhEIHAogCgQEUQIAEgSTEQQUIhIgT0ZQQVRfU0VUX1FVRVVFLiAKDwoFBFECAAQSBpMRBJIRHgoNCgUEUQIABRIEkxEECgoNCgUEUQIAARIEkxELDwoNCgUEUQIAAxIEkxESEwopCgQEUQIBEgSUEQQYIhsgUXVldWUgaWQgZm9yIHRoZSBwYWNrZXRzLiAKDwoFBFECAQQSBpQRBJMRFAoNCgUEUQIBBRIElBEECgoNCgUEUQIBARIElBELEwoNCgUEUQIBAxIElBEWFwoMCgIEUhIGlxEAmhEBCgsKAwRSARIElxEIHwomCgQEUgIAEgSYEQQXIhggQWxsIHBvcnRzIGlmIE9GUFBfQU5ZLiAKDwoFBFICAAQSBpgRBJcRIQoNCgUEUgIABRIEmBEECgoNCgUEUgIAARIEmBELEgoNCgUEUgIAAxIEmBEVFgonCgQEUgIBEgSZEQQYIhkgQWxsIHF1ZXVlcyBpZiBPRlBRX0FMTC4gCg8KBQRSAgEEEgaZEQSYERcKDQoFBFICAQUSBJkRBAoKDQoFBFICAQESBJkRCxMKDQoFBFICAQMSBJkRFhcKDAoCBFMSBpwRAKURAQoLCgMEUwESBJwRCBcKDAoEBFMCABIEnREEFwoPCgUEUwIABBIGnREEnBEZCg0KBQRTAgAFEgSdEQQKCg0KBQRTAgABEgSdEQsSCg0KBQRTAgADEgSdERUWChkKBARTAgESBJ4RBBgiCyBRdWV1ZSBpLmQgCg8KBQRTAgEEEgaeEQSdERcKDQoFBFMCAQUSBJ4RBAoKDQoFBFMCAQESBJ4RCxMKDQoFBFMCAQMSBJ4RFhcKLAoEBFMCAhIEnxEEGCIeIE51bWJlciBvZiB0cmFuc21pdHRlZCBieXRlcy4gCg8KBQRTAgIEEgafEQSeERgKDQoFBFMCAgUSBJ8RBAoKDQoFBFMCAgESBJ8RCxMKDQoFBFMCAgMSBJ8RFhcKLgoEBFMCAxIEoBEEGiIgIE51bWJlciBvZiB0cmFuc21pdHRlZCBwYWNrZXRzLiAKDwoFBFMCAwQSBqARBJ8RGAoNCgUEUwIDBRIEoBEECgoNCgUEUwIDARIEoBELFQoNCgUEUwIDAxIEoBEYGQo5CgQEUwIEEgShEQQZIisgTnVtYmVyIG9mIHBhY2tldHMgZHJvcHBlZCBkdWUgdG8gb3ZlcnJ1bi4gCg8KBQRTAgQEEgahEQSgERoKDQoFBFMCBAUSBKERBAoKDQoFBFMCBAESBKERCxQKDQoFBFMCBAMSBKERFxgKNQoEBFMCBRIEohEEHCInIFRpbWUgcXVldWUgaGFzIGJlZW4gYWxpdmUgaW4gc2Vjb25kcy4gCg8KBQRTAgUEEgaiEQShERkKDQoFBFMCBQUSBKIRBAoKDQoFBFMCBQESBKIRCxcKDQoFBFMCBQMSBKIRGhsKTQoEBFMCBhIEoxEEHSI/IFRpbWUgcXVldWUgaGFzIGJlZW4gYWxpdmUgaW4gbmFub3NlY29uZHMKYmV5b25kIGR1cmF0aW9uX3NlYy4gCg8KBQRTAgYEEgajEQSiERwKDQoFBFMCBgUSBKMRBAoKDQoFBFMCBgESBKMRCxgKDQoFBFMCBgMSBKMRGxwK6wYKAgU0Ega8EQDBEQEaEyBDb250cm9sbGVyIHJvbGVzLiAyxwYgQ29uZmlndXJlcyB0aGUgInJvbGUiIG9mIHRoZSBzZW5kaW5nIGNvbnRyb2xsZXIuICBUaGUgZGVmYXVsdCByb2xlIGlzOgoKICAgIC0gRXF1YWwgKE9GUENSX1JPTEVfRVFVQUwpLCB3aGljaCBhbGxvd3MgdGhlIGNvbnRyb2xsZXIgYWNjZXNzIHRvIGFsbAogICAgICBPcGVuRmxvdyBmZWF0dXJlcy4gQWxsIGNvbnRyb2xsZXJzIGhhdmUgZXF1YWwgcmVzcG9uc2liaWxpdHkuCgogVGhlIG90aGVyIHBvc3NpYmxlIHJvbGVzIGFyZSBhIHJlbGF0ZWQgcGFpcjoKCiAgICAtIE1hc3RlciAoT0ZQQ1JfUk9MRV9NQVNURVIpIGlzIGVxdWl2YWxlbnQgdG8gRXF1YWwsIGV4Y2VwdCB0aGF0IHRoZXJlCiAgICAgIG1heSBiZSBhdCBtb3N0IG9uZSBNYXN0ZXIgY29udHJvbGxlciBhdCBhIHRpbWU6IHdoZW4gYSBjb250cm9sbGVyCiAgICAgIGNvbmZpZ3VyZXMgaXRzZWxmIGFzIE1hc3RlciwgYW55IGV4aXN0aW5nIE1hc3RlciBpcyBkZW1vdGVkIHRvIHRoZQogICAgICBTbGF2ZSByb2xlLgoKICAgIC0gU2xhdmUgKE9GUENSX1JPTEVfU0xBVkUpIGFsbG93cyB0aGUgY29udHJvbGxlciByZWFkLW9ubHkgYWNjZXNzIHRvCiAgICAgIE9wZW5GbG93IGZlYXR1cmVzLiAgSW4gcGFydGljdWxhciBhdHRlbXB0cyB0byBtb2RpZnkgdGhlIGZsb3cgdGFibGUKICAgICAgd2lsbCBiZSByZWplY3RlZCB3aXRoIGFuIE9GUEJSQ19FUEVSTSBlcnJvci4KCiAgICAgIFNsYXZlIGNvbnRyb2xsZXJzIGRvIG5vdCByZWNlaXZlIE9GUFRfUEFDS0VUX0lOIG9yIE9GUFRfRkxPV19SRU1PVkVECiAgICAgIG1lc3NhZ2VzLCBidXQgdGhleSBkbyByZWNlaXZlIE9GUFRfUE9SVF9TVEFUVVMgbWVzc2FnZXMuCgoLCgMFNAESBLwRBRgKKgoEBTQCABIEvREEHCIcIERvbid0IGNoYW5nZSBjdXJyZW50IHJvbGUuIAoNCgUFNAIAARIEvREEFwoNCgUFNAIAAhIEvREaGwoqCgQFNAIBEgS+EQQcIhwgRGVmYXVsdCByb2xlLCBmdWxsIGFjY2Vzcy4gCg0KBQU0AgEBEgS+EQQUCg0KBQU0AgECEgS+ERobCjAKBAU0AgISBL8RBBwiIiBGdWxsIGFjY2VzcywgYXQgbW9zdCBvbmUgbWFzdGVyLiAKDQoFBTQCAgESBL8RBBUKDQoFBTQCAgISBL8RGhsKIQoEBTQCAxIEwBEEHCITIFJlYWQtb25seSBhY2Nlc3MuIAoNCgUFNAIDARIEwBEEFAoNCgUFNAIDAhIEwBEaGwovCgIEVBIGxBEAyBEBGiEgUm9sZSByZXF1ZXN0IGFuZCByZXBseSBtZXNzYWdlLiAKCwoDBFQBEgTEEQgYCm4KBARUAgASBMYRBCEaSG9mcF9oZWFkZXIgaGVhZGVyOyAgICAgICAgLyogVHlwZSBPRlBUX1JPTEVfUkVRVUVTVC9PRlBUX1JPTEVfUkVQTFkuICovCiIWIE9uZSBvZiBPRlBDUl9ST0xFXyouIAoPCgUEVAIABBIGxhEExBEaCg0KBQRUAgAGEgTGEQQXCg0KBQRUAgABEgTGERgcCg0KBQRUAgADEgTGER8gCi0KBARUAgESBMcRBB0iHyBNYXN0ZXIgRWxlY3Rpb24gR2VuZXJhdGlvbiBJZCAKDwoFBFQCAQQSBscRBMYRIQoNCgUEVAIBBRIExxEECgoNCgUEVAIBARIExxELGAoNCgUEVAIBAxIExxEbHAozCgIEVRIGyxEA0BEBGiUgQXN5bmNocm9ub3VzIG1lc3NhZ2UgY29uZmlndXJhdGlvbi4gCgsKAwRVARIEyxEIGApwCgQEVQIAEgTNEQQnGkRvZnBfaGVhZGVyIGhlYWRlcjsgICAgLyogT0ZQVF9HRVRfQVNZTkNfUkVQTFkgb3IgT0ZQVF9TRVRfQVNZTkMuICovCiIcIEJpdG1hc2tzIG9mIE9GUFJfKiB2YWx1ZXMuIAoNCgUEVQIABBIEzREEDAoNCgUEVQIABRIEzRENEwoNCgUEVQIAARIEzREUIgoNCgUEVQIAAxIEzRElJgorCgQEVQIBEgTOEQQpIh0gQml0bWFza3Mgb2YgT0ZQUFJfKiB2YWx1ZXMuIAoNCgUEVQIBBBIEzhEEDAoNCgUEVQIBBRIEzhENEwoNCgUEVQIBARIEzhEUJAoNCgUEVQIBAxIEzhEnKAorCgQEVQICEgTPEQQqIh0gQml0bWFza3Mgb2YgT0ZQUlJfKiB2YWx1ZXMuIAoNCgUEVQICBBIEzxEEDAoNCgUEVQICBRIEzxENEwoNCgUEVQICARIEzxEUJQoNCgUEVQICAxIEzxEoKQpKCgIEVhIG1REA2REBMjwgQURESVRJT05BTCBWT0xUSEEgU1BFQ0lGSUMgTUVTU0FHRSBUWVBFUywgQUlESU5HIFJQQyBDQUxMUyAKCwoDBFYBEgTVEQgWCi0KBARWAgASBNYRBBIiHyBEZXZpY2UuaWQgb3IgTG9naWNhbERldmljZS5pZAoKDwoFBFYCAAQSBtYRBNURGAoNCgUEVgIABRIE1hEECgoNCgUEVgIAARIE1hELDQoNCgUEVgIAAxIE1hEQEQoMCgQEVgIBEgTXEQQgCg8KBQRWAgEEEgbXEQTWERIKDQoFBFYCAQYSBNcRBBEKDQoFBFYCAQESBNcREhsKDQoFBFYCAQMSBNcRHh8KOwoEBFYCAhIE2BEEEyItVHJhbnNhY3Rpb24gaWQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVxdWVzdC4KCg8KBQRWAgIEEgbYEQTXESAKDQoFBFYCAgUSBNgRBAoKDQoFBFYCAgESBNgRCw4KDQoFBFYCAgMSBNgRERIKDAoCBFcSBtsRAN0RAQoLCgMEVwESBNsRCBcKDAoEBFcCABIE3BEELQoNCgUEVwIABBIE3BEEDAoNCgUEVwIABhIE3BENHAoNCgUEVwIAARIE3BEdKAoNCgUEVwIAAxIE3BErLAoMCgIEWBIG3xEA4xEBCgsKAwRYARIE3xEIFwotCgQEWAIAEgTgEQQSIh8gRGV2aWNlLmlkIG9yIExvZ2ljYWxEZXZpY2UuaWQKCg8KBQRYAgAEEgbgEQTfERkKDQoFBFgCAAUSBOARBAoKDQoFBFgCAAESBOARCw0KDQoFBFgCAAMSBOAREBEKDAoEBFgCARIE4REEHgoPCgUEWAIBBBIG4REE4BESCg0KBQRYAgEGEgThEQQQCg0KBQRYAgEBEgThEREZCg0KBQRYAgEDEgThERwdCjsKBARYAgISBOIRBBMiLVRyYW5zYWN0aW9uIGlkIGFzc29jaWF0ZWQgd2l0aCB0aGlzIHJlcXVlc3QuCgoPCgUEWAICBBIG4hEE4REeCg0KBQRYAgIFEgTiEQQKCg0KBQRYAgIBEgTiEQsOCg0KBQRYAgIDEgTiERESCgwKAgRZEgblEQDpEQEKCwoDBFkBEgTlEQgcCi0KBARZAgASBOYRBBIiHyBEZXZpY2UuaWQgb3IgTG9naWNhbERldmljZS5pZAoKDwoFBFkCAAQSBuYRBOURHgoNCgUEWQIABRIE5hEECgoNCgUEWQIAARIE5hELDQoNCgUEWQIAAxIE5hEQEQoMCgQEWQIBEgTnEQQgCg8KBQRZAgEEEgbnEQTmERIKDQoFBFkCAQYSBOcRBBEKDQoFBFkCAQESBOcREhsKDQoFBFkCAQMSBOcRHh8KOwoEBFkCAhIE6BEEEyItVHJhbnNhY3Rpb24gaWQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVxdWVzdC4KCg8KBQRZAgIEEgboEQTnESAKDQoFBFkCAgUSBOgRBAoKDQoFBFkCAgESBOgRCw4KDQoFBFkCAgMSBOgRERIKDAoCBFoSBusRAO0RAQoLCgMEWgESBOsRCA0KDAoEBFoCABIE7BEEJgoNCgUEWgIABBIE7BEEDAoNCgUEWgIABhIE7BENGwoNCgUEWgIAARIE7BEcIQoNCgUEWgIAAxIE7BEkJQoMCgIEWxIG7xEA8REBCgsKAwRbARIE7xEIDgoMCgQEWwIAEgTwEQQnCg0KBQRbAgAEEgTwEQQMCg0KBQRbAgAGEgTwEQ0cCg0KBQRbAgABEgTwER0iCg0KBQRbAgADEgTwESUmCgwKAgRcEgbzEQD1EQEKCwoDBFwBEgTzEQgSCgwKBARcAgASBPQRBCcKDQoFBFwCAAQSBPQRBAwKDQoFBFwCAAYSBPQRDRwKDQoFBFwCAAESBPQRHSIKDQoFBFwCAAMSBPQRJSYKDAoCBF0SBvcRAPoRAQoLCgMEXQESBPcRCBMKDAoEBF0CABIE+BEEFQoPCgUEXQIABBIG+BEE9xEVCg0KBQRdAgAGEgT4EQQJCg0KBQRdAgABEgT4EQoQCg0KBQRdAgADEgT4ERMUCgwKBARdAgESBPkRBBgKDwoFBF0CAQQSBvkRBPgRFQoNCgUEXQIBBhIE+REECQoNCgUEXQIBARIE+REKEwoNCgUEXQIBAxIE+REWFwoMCgIEXhIG/BEAgBIBCgsKAwReARIE/BEIGAoMCgQEXgIAEgT9EQQaCg8KBQReAgAEEgb9EQT8ERoKDQoFBF4CAAYSBP0RBA4KDQoFBF4CAAESBP0RDxUKDQoFBF4CAAMSBP0RGBkKDAoEBF4CARIE/hEEHQoPCgUEXgIBBBIG/hEE/REaCg0KBQReAgEGEgT+EQQOCg0KBQReAgEBEgT+EQ8YCg0KBQReAgEDEgT+ERscCgwKBAReAgISBP8RBB0KDwoFBF4CAgQSBv8RBP4RHQoNCgUEXgICBhIE/xEEDgoNCgUEXgICARIE/xEPGAoNCgUEXgICAxIE/xEbHAoMCgIEXxIGghIAhRIBCgsKAwRfARIEghIIEAogCgQEXwIAEgSDEgQSIhIgTG9naWNhbERldmljZS5pZAoKDwoFBF8CAAQSBoMSBIISEgoNCgUEXwIABRIEgxIECgoNCgUEXwIAARIEgxILDQoNCgUEXwIAAxIEgxIQEQoMCgQEXwIBEgSEEgQgCg8KBQRfAgEEEgaEEgSDEhIKDQoFBF8CAQYSBIQSBBEKDQoFBF8CAQESBIQSEhsKDQoFBF8CAQMSBIQSHh8KDAoCBGASBocSAIoSAQoLCgMEYAESBIcSCBEKIAoEBGACABIEiBIEEiISIExvZ2ljYWxEZXZpY2UuaWQKCg8KBQRgAgAEEgaIEgSHEhMKDQoFBGACAAUSBIgSBAoKDQoFBGACAAESBIgSCw0KDQoFBGACAAMSBIgSEBEKDAoEBGACARIEiRIEIgoPCgUEYAIBBBIGiRIEiBISCg0KBQRgAgEGEgSJEgQSCg0KBQRgAgEBEgSJEhMdCg0KBQRgAgEDEgSJEiAhCgwKAgRhEgaMEgCTEgEKCwoDBGEBEgSMEggTCiAKBARhAgASBI0SBBIiEiBMb2dpY2FsRGV2aWNlLmlkCgoPCgUEYQIABBIGjRIEjBIVCg0KBQRhAgAFEgSNEgQKCg0KBQRhAgABEgSNEgsNCg0KBQRhAgADEgSNEhARCg4KBARhCAASBo4SBJISBQoNCgUEYQgAARIEjhIKDwoMCgQEYQIBEgSPEggoCg0KBQRhAgEGEgSPEggXCg0KBQRhAgEBEgSPEhgjCg0KBQRhAgEDEgSPEiYnCgwKBARhAgISBJASCCAKDQoFBGECAgYSBJASCBUKDQoFBGECAgESBJASFhsKDQoFBGECAgMSBJASHh8KDAoEBGECAxIEkRIILAoNCgUEYQIDBhIEkRIIGQoNCgUEYQIDARIEkRIaJwoNCgUEYQIDAxIEkRIqKwpSCgIEYhIGlhIAmRIBGkQgQWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBwcm9jZXNzIGZsb3cgYXQgZGV2aWNlIGFkYXB0ZXJzCgoLCgMEYgESBJYSCBQKPQoEBGICABIEmBIENRovIE1ldGVycyBhc3NvY2lhdGVkIHdpdGggZmxvdy11cGRhdGUgdG8gYWRhcHRlcgoKDQoFBGICAAQSBJgSBAwKDQoFBGICAAYSBJgSDSkKDQoFBGICAAESBJgSKjAKDQoFBGICAAMSBJgSMzRiBnByb3RvMwqLEwoidm9sdGhhX3Byb3Rvcy9sb2dpY2FsX2RldmljZS5wcm90bxIObG9naWNhbF9kZXZpY2UaHGdvb2dsZS9hcGkvYW5ub3RhdGlvbnMucHJvdG8aH3ZvbHRoYV9wcm90b3Mvb3BlbmZsb3dfMTMucHJvdG8iOAoNTG9naWNhbFBvcnRJZBIOCgJpZBgBIAEoCVICaWQSFwoHcG9ydF9pZBgCIAEoCVIGcG9ydElkIvIBCgtMb2dpY2FsUG9ydBIOCgJpZBgBIAEoCVICaWQSMAoIb2ZwX3BvcnQYAiABKAsyFS5vcGVuZmxvd18xMy5vZnBfcG9ydFIHb2ZwUG9ydBIbCglkZXZpY2VfaWQYAyABKAlSCGRldmljZUlkEiQKDmRldmljZV9wb3J0X25vGAQgASgNUgxkZXZpY2VQb3J0Tm8SGwoJcm9vdF9wb3J0GAUgASgIUghyb290UG9ydBJBCg5vZnBfcG9ydF9zdGF0cxgGIAEoCzIbLm9wZW5mbG93XzEzLm9mcF9wb3J0X3N0YXRzUgxvZnBQb3J0U3RhdHMiQQoMTG9naWNhbFBvcnRzEjEKBWl0ZW1zGAEgAygLMhsubG9naWNhbF9kZXZpY2UuTG9naWNhbFBvcnRSBWl0ZW1zItwBCg1Mb2dpY2FsRGV2aWNlEg4KAmlkGAEgASgJUgJpZBIfCgtkYXRhcGF0aF9pZBgCIAEoBFIKZGF0YXBhdGhJZBIpCgRkZXNjGAMgASgLMhUub3BlbmZsb3dfMTMub2ZwX2Rlc2NSBGRlc2MSSQoPc3dpdGNoX2ZlYXR1cmVzGAQgASgLMiAub3BlbmZsb3dfMTMub2ZwX3N3aXRjaF9mZWF0dXJlc1IOc3dpdGNoRmVhdHVyZXMSJAoOcm9vdF9kZXZpY2VfaWQYBSABKAlSDHJvb3REZXZpY2VJZCJFCg5Mb2dpY2FsRGV2aWNlcxIzCgVpdGVtcxgBIAMoCzIdLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxEZXZpY2VSBWl0ZW1zQmUKIm9yZy5vcGVuY29yZC52b2x0aGEubG9naWNhbF9kZXZpY2VCD09GTG9naWNhbERldmljZVouZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL3ZvbHRoYUqODAoGEgQAADQBCggKAQwSAwAAEgoICgEIEgMCAEUKCQoCCAsSAwIARQoICgEIEgMDADsKCQoCCAESAwMAOwoICgEIEgMEADAKCQoCCAgSAwQAMAoICgECEgMGABcKCQoCAwASAwgAJgoJCgIDARIDCQApCgoKAgQAEgQLABEBCgoKAwQAARIDCwgVCioKBAQAAgASAw0EEhodIHVuaXF1ZSBp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c191cGRhdGUYByABKAhSH2FjY2VwdHNEaXJlY3RMb2dpY2FsRmxvd3NVcGRhdGUSIQoMYWRhcHRlcl90eXBlGAggASgJUgthZGFwdGVyVHlwZSI3CgtEZXZpY2VUeXBlcxIoCgVpdGVtcxgBIAMoCzISLmRldmljZS5EZXZpY2VUeXBlUgVpdGVtcyLAAQoIUG1Db25maWcSEgoEbmFtZRgBIAEoCVIEbmFtZRIrCgR0eXBlGAIgASgOMhcuZGV2aWNlLlBtQ29uZmlnLlBtVHlwZVIEdHlwZRIYCgdlbmFibGVkGAMgASgIUgdlbmFibGVkEh8KC3NhbXBsZV9mcmVxGAQgASgNUgpzYW1wbGVGcmVxIjgKBlBtVHlwZRILCgdDT1VOVEVSEAASCQoFR0FVR0UQARIJCgVTVEFURRACEgsKB0NPTlRFWFQQAyKTAQoNUG1Hcm91cENvbmZpZxIdCgpncm91cF9uYW1lGAEgASgJUglncm91cE5hbWUSHQoKZ3JvdXBfZnJlcRgCIAEoDVIJZ3JvdXBGcmVxEhgKB2VuYWJsZWQYAyABKAhSB2VuYWJsZWQSKgoHbWV0cmljcxgEIAMoCzIQLmRldmljZS5QbUNvbmZpZ1IHbWV0cmljcyLzAQoJUG1Db25maWdzEg4KAmlkGAEgASgJUgJpZBIhCgxkZWZhdWx0X2ZyZXEYAiABKA1SC2RlZmF1bHRGcmVxEhgKB2dyb3VwZWQYAyABKAhSB2dyb3VwZWQSIwoNZnJlcV9vdmVycmlkZRgEIAEoCFIMZnJlcU92ZXJyaWRlEi0KBmdyb3VwcxgFIAMoCzIVLmRldmljZS5QbUdyb3VwQ29uZmlnUgZncm91cHMSKgoHbWV0cmljcxgGIAMoCzIQLmRldmljZS5QbUNvbmZpZ1IHbWV0cmljcxIZCghtYXhfc2tldxgHIAEoDVIHbWF4U2tldyKPAgoFSW1hZ2USEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgJUgd2ZXJzaW9uEhIKBGhhc2gYAyABKA1SBGhhc2gSKQoQaW5zdGFsbF9kYXRldGltZRgEIAEoCVIPaW5zdGFsbERhdGV0aW1lEhsKCWlzX2FjdGl2ZRgFIAEoCFIIaXNBY3RpdmUSIQoMaXNfY29tbWl0dGVkGAYgASgIUgtpc0NvbW1pdHRlZBIZCghpc192YWxpZBgHIAEoCFIHaXNWYWxpZBIQCgN1cmwYCCABKAlSA3VybBIWCgZ2ZW5kb3IYCSABKAlSBnZlbmRvchIUCgVjcmMzMhgKIAEoDVIFY3JjMzIi5wcKDUltYWdlRG93bmxvYWQSDgoCaWQYASABKAlSAmlkEhIKBG5hbWUYAiABKAlSBG5hbWUSEAoDdXJsGAMgASgJUgN1cmwSEAoDY3JjGAQgASgNUgNjcmMSTwoOZG93bmxvYWRfc3RhdGUYBSABKA4yKC5kZXZpY2UuSW1hZ2VEb3dubG9hZC5JbWFnZURvd25sb2FkU3RhdGVSDWRvd25sb2FkU3RhdGUSIwoNaW1hZ2VfdmVyc2lvbhgGIAEoCVIMaW1hZ2VWZXJzaW9uEikKEGRvd25sb2FkZWRfYnl0ZXMYByABKA1SD2Rvd25sb2FkZWRCeXRlcxJICgZyZWFzb24YCCABKA4yMC5kZXZpY2UuSW1hZ2VEb3dubG9hZC5JbWFnZURvd25sb2FkRmFpbHVyZVJlYXNvblIGcmVhc29uEicKD2FkZGl0aW9uYWxfaW5mbxgJIAEoCVIOYWRkaXRpb25hbEluZm8SHwoLc2F2ZV9jb25maWcYCiABKAhSCnNhdmVDb25maWcSGwoJbG9jYWxfZGlyGAsgASgJUghsb2NhbERpchJJCgtpbWFnZV9zdGF0ZRgMIAEoDjIoLmRldmljZS5JbWFnZURvd25sb2FkLkltYWdlQWN0aXZhdGVTdGF0ZVIKaW1hZ2VTdGF0ZRIbCglmaWxlX3NpemUYDSABKA1SCGZpbGVTaXplIrcBChJJbWFnZURvd25sb2FkU3RhdGUSFAoQRE9XTkxPQURfVU5LTk9XThAAEhYKEkRPV05MT0FEX1NVQ0NFRURFRBABEhYKEkRPV05MT0FEX1JFUVVFU1RFRBACEhQKEERPV05MT0FEX1NUQVJURUQQAxITCg9ET1dOTE9BRF9GQUlMRUQQBBIYChRET1dOTE9BRF9VTlNVUFBPUlRFRBAFEhYKEkRPV05MT0FEX0NBTkNFTExFRBAGIoYBChpJbWFnZURvd25sb2FkRmFpbHVyZVJlYXNvbhIMCghOT19FUlJPUhAAEg8KC0lOVkFMSURfVVJMEAESDwoLREVWSUNFX0JVU1kQAhIWChJJTlNVRkZJQ0lFTlRfU1BBQ0UQAxIRCg1VTktOT1dOX0VSUk9SEAQSDQoJQ0FOQ0VMTEVEEAUijAEKEkltYWdlQWN0aXZhdGVTdGF0ZRIRCg1JTUFHRV9VTktOT1dOEAASEgoOSU1BR0VfSU5BQ1RJVkUQARIUChBJTUFHRV9BQ1RJVkFUSU5HEAISEAoMSU1BR0VfQUNUSVZFEAMSEwoPSU1BR0VfUkVWRVJUSU5HEAQSEgoOSU1BR0VfUkVWRVJURUQQBToCGAEiQQoOSW1hZ2VEb3dubG9hZHMSKwoFaXRlbXMYAiADKAsyFS5kZXZpY2UuSW1hZ2VEb3dubG9hZFIFaXRlbXM6AhgBIi0KBkltYWdlcxIjCgVpbWFnZRgBIAMoCzINLmRldmljZS5JbWFnZVIFaW1hZ2UisAEKCE9udUltYWdlEhgKB3ZlcnNpb24YASABKAlSB3ZlcnNpb24SHgoKaXNDb21taXRlZBgCIAEoCFIKaXNDb21taXRlZBIaCghpc0FjdGl2ZRgDIAEoCFIIaXNBY3RpdmUSGAoHaXNWYWxpZBgEIAEoCFIHaXNWYWxpZBIgCgtwcm9kdWN0Q29kZRgFIAEoCVILcHJvZHVjdENvZGUSEgoEaGFzaBgGIAEoCVIEaGFzaCIzCglPbnVJbWFnZXMSJgoFaXRlbXMYASADKAsyEC5kZXZpY2UuT251SW1hZ2VSBWl0ZW1zImMKEERldmljZUltYWdlU3RhdGUSGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIyCgppbWFnZVN0YXRlGAIgASgLMhIuZGV2aWNlLkltYWdlU3RhdGVSCmltYWdlU3RhdGUigggKCkltYWdlU3RhdGUSGAoHdmVyc2lvbhgBIAEoCVIHdmVyc2lvbhJMCg5kb3dubG9hZF9zdGF0ZRgCIAEoDjIlLmRldmljZS5JbWFnZVN0YXRlLkltYWdlRG93bmxvYWRTdGF0ZVINZG93bmxvYWRTdGF0ZRI9CgZyZWFzb24YAyABKA4yJS5kZXZpY2UuSW1hZ2VTdGF0ZS5JbWFnZUZhaWx1cmVSZWFzb25SBnJlYXNvbhJICgtpbWFnZV9zdGF0ZRgEIAEoDjInLmRldmljZS5JbWFnZVN0YXRlLkltYWdlQWN0aXZhdGlvblN0YXRlUgppbWFnZVN0YXRlItABChJJbWFnZURvd25sb2FkU3RhdGUSFAoQRE9XTkxPQURfVU5LTk9XThAAEhYKEkRPV05MT0FEX1NVQ0NFRURFRBABEhYKEkRPV05MT0FEX1JFUVVFU1RFRBACEhQKEERPV05MT0FEX1NUQVJURUQQAxITCg9ET1dOTE9BRF9GQUlMRUQQBBIYChRET1dOTE9BRF9VTlNVUFBPUlRFRBAFEhcKE0RPV05MT0FEX0NBTkNFTExJTkcQBhIWChJET1dOTE9BRF9DQU5DRUxMRUQQByL0AQoSSW1hZ2VGYWlsdXJlUmVhc29uEgwKCE5PX0VSUk9SEAASDwoLSU5WQUxJRF9VUkwQARIPCgtERVZJQ0VfQlVTWRACEhYKEklOU1VGRklDSUVOVF9TUEFDRRADEhEKDVVOS05PV05fRVJST1IQBBIYChRDQU5DRUxMRURfT05fUkVRVUVTVBAFEhoKFkNBTkNFTExFRF9PTl9PTlVfU1RBVEUQBhIaChZWRU5ET1JfREVWSUNFX01JU01BVENIEAcSFwoTT01DSV9UUkFOU0ZFUl9FUlJPUhAIEhgKFElNQUdFX1JFRlVTRURfQllfT05VEAkiuAIKFEltYWdlQWN0aXZhdGlvblN0YXRlEhEKDUlNQUdFX1VOS05PV04QABISCg5JTUFHRV9JTkFDVElWRRABEhQKEElNQUdFX0FDVElWQVRJTkcQAhIQCgxJTUFHRV9BQ1RJVkUQAxIUChBJTUFHRV9DT01NSVRUSU5HEAQSEwoPSU1BR0VfQ09NTUlUVEVEEAUSHQoZSU1BR0VfQUNUSVZBVElPTl9BQk9SVElORxAGEhwKGElNQUdFX0FDVElWQVRJT05fQUJPUlRFRBAHEhkKFUlNQUdFX0NPTU1JVF9BQk9SVElORxAIEhgKFElNQUdFX0NPTU1JVF9BQk9SVEVEEAkSFQoRSU1BR0VfRE9XTkxPQURJTkcQChIdChlJTUFHRV9ET1dOTE9BRElOR19BQk9SVEVEEAsitwUKBFBvcnQSFwoHcG9ydF9ubxgBIAEoDVIGcG9ydE5vEhQKBWxhYmVsGAIgASgJUgVsYWJlbBIpCgR0eXBlGAMgASgOMhUuZGV2aWNlLlBvcnQuUG9ydFR5cGVSBHR5cGUSOQoLYWRtaW5fc3RhdGUYBSABKA4yGC5jb21tb24uQWRtaW5TdGF0ZS5UeXBlc1IKYWRtaW5TdGF0ZRI5CgtvcGVyX3N0YXR1cxgGIAEoDjIYLmNvbW1vbi5PcGVyU3RhdHVzLlR5cGVzUgpvcGVyU3RhdHVzEhsKCWRldmljZV9pZBgHIAEoCVIIZGV2aWNlSWQSKwoFcGVlcnMYCCADKAsyFS5kZXZpY2UuUG9ydC5QZWVyUG9ydFIFcGVlcnMSHQoKcnhfcGFja2V0cxgJIAEoBlIJcnhQYWNrZXRzEhkKCHJ4X2J5dGVzGAogASgGUgdyeEJ5dGVzEhsKCXJ4X2Vycm9ycxgLIAEoBlIIcnhFcnJvcnMSHQoKdHhfcGFja2V0cxgMIAEoBlIJdHhQYWNrZXRzEhkKCHR4X2J5dGVzGA0gASgGUgd0eEJ5dGVzEhsKCXR4X2Vycm9ycxgOIAEoBlIIdHhFcnJvcnMSMAoIb2ZwX3BvcnQYDyABKAsyFS5vcGVuZmxvd18xMy5vZnBfcG9ydFIHb2ZwUG9ydBpACghQZWVyUG9ydBIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhcKB3BvcnRfbm8YAiABKA1SBnBvcnRObyJzCghQb3J0VHlwZRILCgdVTktOT1dOEAASEAoMRVRIRVJORVRfTk5JEAESEAoMRVRIRVJORVRfVU5JEAISCwoHUE9OX09MVBADEgsKB1BPTl9PTlUQBBINCglWRU5FVF9PTFQQBRINCglWRU5FVF9PTlUQBiIrCgVQb3J0cxIiCgVpdGVtcxgBIAMoCzIMLmRldmljZS5Qb3J0UgVpdGVtcyLYCgoGRGV2aWNlEg4KAmlkGAEgASgJUgJpZBISCgR0eXBlGAIgASgJUgR0eXBlEhIKBHJvb3QYAyABKAhSBHJvb3QSGwoJcGFyZW50X2lkGAQgASgJUghwYXJlbnRJZBIkCg5wYXJlbnRfcG9ydF9ubxgUIAEoDVIMcGFyZW50UG9ydE5vEhYKBnZlbmRvchgFIAEoCVIGdmVuZG9yEhQKBW1vZGVsGAYgASgJUgVtb2RlbBIpChBoYXJkd2FyZV92ZXJzaW9uGAcgASgJUg9oYXJkd2FyZVZlcnNpb24SKQoQZmlybXdhcmVfdmVyc2lvbhgIIAEoCVIPZmlybXdhcmVWZXJzaW9uEiYKBmltYWdlcxgJIAEoCzIOLmRldmljZS5JbWFnZXNSBmltYWdlcxIjCg1zZXJpYWxfbnVtYmVyGAogASgJUgxzZXJpYWxOdW1iZXISGwoJdmVuZG9yX2lkGBggASgJUgh2ZW5kb3JJZBIpChBhZGFwdGVyX2VuZHBvaW50GBkgASgJUg9hZGFwdGVyRW5kcG9pbnQSEgoEdmxhbhgMIAEoDVIEdmxhbhIfCgttYWNfYWRkcmVzcxgNIAEoCVIKbWFjQWRkcmVzcxIjCgxpcHY0X2FkZHJlc3MYDiABKAlIAFILaXB2NEFkZHJlc3MSIwoMaXB2Nl9hZGRyZXNzGA8gASgJSABSC2lwdjZBZGRyZXNzEiQKDWhvc3RfYW5kX3BvcnQYFSABKAlIAFILaG9zdEFuZFBvcnQSHQoKZXh0cmFfYXJncxgXIAEoCVIJZXh0cmFBcmdzEkAKDXByb3h5X2FkZHJlc3MYEyABKAsyGy5kZXZpY2UuRGV2aWNlLlByb3h5QWRkcmVzc1IMcHJveHlBZGRyZXNzEjkKC2FkbWluX3N0YXRlGBAgASgOMhguY29tbW9uLkFkbWluU3RhdGUuVHlwZXNSCmFkbWluU3RhdGUSOQoLb3Blcl9zdGF0dXMYESABKA4yGC5jb21tb24uT3BlclN0YXR1cy5UeXBlc1IKb3BlclN0YXR1cxIWCgZyZWFzb24YFiABKAlSBnJlYXNvbhJCCg5jb25uZWN0X3N0YXR1cxgSIAEoDjIbLmNvbW1vbi5Db25uZWN0U3RhdHVzLlR5cGVzUg1jb25uZWN0U3RhdHVzEiwKBmN1c3RvbRhAIAEoCzIULmdvb2dsZS5wcm90b2J1Zi5BbnlSBmN1c3RvbRIxCgpwbV9jb25maWdzGIMBIAEoCzIRLmRldmljZS5QbUNvbmZpZ3NSCXBtQ29uZmlncxI/Cg9pbWFnZV9kb3dubG9hZHMYhQEgAygLMhUuZGV2aWNlLkltYWdlRG93bmxvYWRSDmltYWdlRG93bmxvYWRzGq4CCgxQcm94eUFkZHJlc3MSGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIfCgtkZXZpY2VfdHlwZRgCIAEoCVIKZGV2aWNlVHlwZRIdCgpjaGFubmVsX2lkGAMgASgNUgljaGFubmVsSWQSKAoQY2hhbm5lbF9ncm91cF9pZBgEIAEoDVIOY2hhbm5lbEdyb3VwSWQSLwoTY2hhbm5lbF90ZXJtaW5hdGlvbhgFIAEoCVISY2hhbm5lbFRlcm1pbmF0aW9uEhUKBm9udV9pZBgGIAEoDVIFb251SWQSJAoOb251X3Nlc3Npb25faWQYByABKA1SDG9udVNlc3Npb25JZBIpChBhZGFwdGVyX2VuZHBvaW50GAggASgJUg9hZGFwdGVyRW5kcG9pbnRCCQoHYWRkcmVzc0oECAsQDCLCAQoaRGV2aWNlSW1hZ2VEb3dubG9hZFJlcXVlc3QSJwoJZGV2aWNlX2lkGAEgAygLMgouY29tbW9uLklEUghkZXZpY2VJZBIjCgVpbWFnZRgCIAEoCzINLmRldmljZS5JbWFnZVIFaW1hZ2USLAoRYWN0aXZhdGVPblN1Y2Nlc3MYAyABKAhSEWFjdGl2YXRlT25TdWNjZXNzEigKD2NvbW1pdE9uU3VjY2VzcxgEIAEoCFIPY29tbWl0T25TdWNjZXNzIoEBChJEZXZpY2VJbWFnZVJlcXVlc3QSJwoJZGV2aWNlX2lkGAEgAygLMgouY29tbW9uLklEUghkZXZpY2VJZBIYCgd2ZXJzaW9uGAIgASgJUgd2ZXJzaW9uEigKD2NvbW1pdE9uU3VjY2VzcxgDIAEoCFIPY29tbWl0T25TdWNjZXNzIl8KE0RldmljZUltYWdlUmVzcG9uc2USSAoTZGV2aWNlX2ltYWdlX3N0YXRlcxgBIAMoCzIYLmRldmljZS5EZXZpY2VJbWFnZVN0YXRlUhFkZXZpY2VJbWFnZVN0YXRlcyKlAQoQU2VsZlRlc3RSZXNwb25zZRI/CgZyZXN1bHQYASABKA4yJy5kZXZpY2UuU2VsZlRlc3RSZXNwb25zZS5TZWxmVGVzdFJlc3VsdFIGcmVzdWx0IlAKDlNlbGZUZXN0UmVzdWx0EgsKB1NVQ0NFU1MQABILCgdGQUlMVVJFEAESEQoNTk9UX1NVUFBPUlRFRBACEhEKDVVOS05PV05fRVJST1IQAyIvCgdEZXZpY2VzEiQKBWl0ZW1zGAEgAygLMg4uZGV2aWNlLkRldmljZVIFaXRlbXMiqAMKFFNpbXVsYXRlQWxhcm1SZXF1ZXN0Eg4KAmlkGAEgASgJUgJpZBIcCglpbmRpY2F0b3IYAiABKAlSCWluZGljYXRvchIXCgdpbnRmX2lkGAMgASgJUgZpbnRmSWQSJAoOcG9ydF90eXBlX25hbWUYBCABKAlSDHBvcnRUeXBlTmFtZRIiCg1vbnVfZGV2aWNlX2lkGAUgASgJUgtvbnVEZXZpY2VJZBIzChZpbnZlcnNlX2JpdF9lcnJvcl9yYXRlGAYgASgFUhNpbnZlcnNlQml0RXJyb3JSYXRlEhQKBWRyaWZ0GAcgASgFUgVkcmlmdBIXCgduZXdfZXFkGAggASgFUgZuZXdFcWQSKgoRb251X3NlcmlhbF9udW1iZXIYCSABKAlSD29udVNlcmlhbE51bWJlchJICglvcGVyYXRpb24YCiABKA4yKi5kZXZpY2UuU2ltdWxhdGVBbGFybVJlcXVlc3QuT3BlcmF0aW9uVHlwZVIJb3BlcmF0aW9uIiUKDU9wZXJhdGlvblR5cGUSCQoFUkFJU0UQABIJCgVDTEVBUhABIpABChdPbnVTZXJpYWxOdW1iZXJPbk9MVFBvbhIuCg1vbHRfZGV2aWNlX2lkGAEgASgLMgouY29tbW9uLklEUgtvbHREZXZpY2VJZBIgCgRwb3J0GAIgASgLMgwuZGV2aWNlLlBvcnRSBHBvcnQSIwoNc2VyaWFsX251bWJlchgDIAEoCVIMc2VyaWFsTnVtYmVyIpkBCgxVcGRhdGVEZXZpY2USDgoCaWQYASABKAlSAmlkEiMKDGlwdjRfYWRkcmVzcxgCIAEoCUgAUgtpcHY0QWRkcmVzcxIjCgxpcHY2X2FkZHJlc3MYAyABKAlIAFILaXB2NkFkZHJlc3MSJAoNaG9zdF9hbmRfcG9ydBgEIAEoCUgAUgtob3N0QW5kUG9ydEIJCgdhZGRyZXNzQloKGm9yZy5vcGVuY29yZC52b2x0aGEuZGV2aWNlQgxWb2x0aGFEZXZpY2VaLmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby92b2x0aGFK66gBCgcSBQAAhQQBCggKAQwSAwAAEgoICgEIEgMCAEUKCQoCCAsSAwIARQoICgEIEgMDADMKCQoCCAESAwMAMwoICgEIEgMEAC0KCQoCCAgSAwQALQoICgECEgMGAA8KCQoCAwASAwgAIwoJCgIDARIDCgAkCgkKAgMCEgMLACkKGwoCBAASBA4A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YWNrLiBVbmRlciBub3JtYWwgb3BlcmF0aW9uLCBvbmUgc29mdHdhcmUgaW1hZ2UKIGlzIGFsd2F5cyBhY3RpdmUgd2hpbGUgdGhlIG90aGVyIGlzIGluYWN0aXZlLiBVbmRlciBubyBjaXJjdW1zdGFuY2VzIGFyZQogYm90aCBzb2Z0d2FyZSBpbWFnZXMgYWxsb3dlZCB0byBiZSBhY3RpdmUgYXQgdGhlIHNhbWUgdGltZQogRGVwcmVjYXRlZCBpbiB2b2x0aGEgMi44LCB3aWxsIGJlIHJlbW92ZWQKIh0gVHJ1ZSBpZiB0aGUgaW1hZ2UgaXMgYWN0aXZlCjInIHVzZSBJU08gODYwMSBmb3JtYXQgZm9yIGRhdGUgYW5kIHRpbWUKCg0KBQQFAgQEEgRiBFogCgwKBQQFAgQFEgNiBAgKDAoFBAUCBAESA2IJEgoMCgUEBQIEAxIDYhUWCp8CCgQEBQIFEgNoBBoa7wEgVGhlIGNvbW1pdHRlZCBzb2Z0d2FyZSBpbWFnZSBpcyBsb2FkZWQgYW5kIGV4ZWN1dGVkIHVwb24gcmVib290IG9mIHRoZQogT05VIGFuZC9vciBjaXJjdWl0IHBhY2suIER1cmluZyBub3JtYWwgb3BlcmF0aW9uLCBvbmUgc29mdHdhcmUgaW1hZ2UgaXMKIGFsd2F5cyBjb21taXR0ZWQsIHdoaWxlIHRoZSBvdGhlciBpcyB1bmNvbW1pdHRlZC4KIERlcHJlY2F0ZWQgaW4gdm9sdGhhIDIuOCwgd2lsbCBiZSByZW1vdmVkCiIgIFRydWUgaWYgdGhlIGltYWdlIGlzIGNvbW1pdHRlZAoKDQoFBAUCBQQSBGgEYhcKDAoFBAUCBQUSA2gECAoMCgUEBQIFARIDaAkVCgwKBQQFAgUDEgNoGBkKzAIKBAQFAgYSA28EFhqgAiBBIHNvZnR3YXJlIGltYWdlIGlzIHZhbGlkIGlmIGl0IGhhcyBiZWVuIHZlcmlmaWVkIHRvIGJlIGFuIGV4ZWN1dGFibGUKIGNvZGUgaW1hZ2UuIFRoZSB2ZXJpZmljYXRpb24gbWVjaGFuaXNtIGlzIG5vdCBzdWJqZWN0IHRvIHN0YW5kYXJkaXphdGlvbjsKIGhvd2V2ZXIsIGl0IHNob3VsZCBpbmNsdWRlIGF0IGxlYXN0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ChNjb20uZ29vZ2xlLnByb3RvYnVmQg5UaW1lc3RhbXBQcm90b1ABWitnaXRodWIuY29tL2dvbGFuZy9wcm90b2J1Zi9wdHlwZXMvdGltZXN0YW1w+AEBogIDR1BCqgIeR29vZ2xlLlByb3RvYnVmLldlbGxLbm93blR5cGVzSvgtCgcSBR4AiAEBCswMCgEMEgMeABIywQwgUHJvdG9jb2wgQnVmZmVycyAtIEdvb2dsZSdzIGRhdGEgaW50ZXJjaGFuZ2UgZm9ybWF0CiBDb3B5cmlnaHQgMjAwOCBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL3Byb3RvY29sLWJ1ZmZlcnMvCgogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCiBtZXQ6CgogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKIGRpc3RyaWJ1dGlvbi4KICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgoKIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCgoICgECEgMgABgKCAoBCBIDIgA7CgkKAgglEgMiADsKCAoBCBIDIwAfCgkKAggfEgMjAB8KCAoBCBIDJABCCgkKAggLEgMkAEIKCAoBCBIDJQAsCgkKAggBEgMlACwKCAoBCBIDJgAvCgkKAggIEgMmAC8KCAoBCBIDJwAiCgkKAggKEgMnACIKCAoBCBIDKAAhCgkKAggkEgMoACEK8RsKAgQAEgV8AIgBARrjGyBBIFRpbWVzdGFtcCByZXByZXNlbnRzIGEgcG9pbnQgaW4gdGltZSBpbmRlcGVuZGVudCBvZiBhbnkgdGltZSB6b25lIG9yIGxvY2FsCiBjYWxlbmRhciwgZW5jb2RlZCBhcyBhIGNvdW50IG9mIHNlY29uZHMgYW5kIGZyYWN0aW9ucyBvZiBzZWNvbmRzIGF0CiBuYW5vc2Vjb25kIHJlc29sdXRpb24uIFRoZSBjb3VudCBpcyByZWxhdGl2ZSB0byBhbiBlcG9jaCBhdCBVVEMgbWlkbmlnaHQgb24KIEphbnVhcnkgMSwgMTk3MCwgaW4gdGhlIHByb2xlcHRpYyBHcmVnb3JpYW4gY2FsZW5kYXIgd2hpY2ggZXh0ZW5kcyB0aGUKIEdyZWdvcmlhbiBjYWxlbmRhciBiYWNrd2FyZHMgdG8geWVhciBvbmUuCgogQWxsIG1pbnV0ZXMgYXJlIDYwIHNlY29uZHMgbG9uZy4gTGVhcCBzZWNvbmRzIGFyZSAic21lYXJlZCIgc28gdGhhdCBubyBsZWFwCiBzZWNvbmQgdGFibGUgaXMgbmVlZGVkIGZvciBpbnRlcnByZXRhdGlvbiwgdXNpbmcgYSBbMjQtaG91ciBsaW5lYXIKIHNtZWFyXShodHRwczovL2RldmVsb3BlcnMuZ29vZ2xlLmNvbS90aW1lL3NtZWFyKS4KCiBUaGUgcmFuZ2UgaXMgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0byA5OTk5LTEyLTMxVDIzOjU5OjU5Ljk5OTk5OTk5OVouIEJ5CiByZXN0cmljdGluZyB0byB0aGF0IHJhbmdlLCB3ZSBlbnN1cmUgdGhhdCB3ZSBjYW4gY29udmVydCB0byBhbmQgZnJvbSBbUkZDCiAzMzM5XShodHRwczovL3d3dy5pZXRmLm9yZy9yZmMvcmZjMzMzOS50eHQpIGRhdGUgc3RyaW5ncy4KCiAjIEV4YW1wbGVzCgogRXhhbXBsZSAxOiBDb21wdXRlIFRpbWVzdGFtcCBmcm9tIFBPU0lYIGB0aW1lKClgLgoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcyh0aW1lKE5VTEwpKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKDApOwoKIEV4YW1wbGUgMjogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBQT1NJWCBgZ2V0dGltZW9mZGF5KClgLgoKICAgICBzdHJ1Y3QgdGltZXZhbCB0djsKICAgICBnZXR0aW1lb2ZkYXkoJnR2LCBOVUxMKTsKCiAgICAgVGltZXN0YW1wIHRpbWVzdGFtcDsKICAgICB0aW1lc3RhbXAuc2V0X3NlY29uZHModHYudHZfc2VjKTsKICAgICB0aW1lc3RhbXAuc2V0X25hbm9zKHR2LnR2X3VzZWMgKiAxMDAwKTsKCiBFeGFtcGxlIDM6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gV2luMzIgYEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lKClgLgoKICAgICBGSUxFVElNRSBmdDsKICAgICBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSgmZnQpOwogICAgIFVJTlQ2NCB0aWNrcyA9ICgoKFVJTlQ2NClmdC5kd0hpZ2hEYXRlVGltZSkgPDwgMzIpIHwgZnQuZHdMb3dEYXRlVGltZTsKCiAgICAgLy8gQSBXaW5kb3dzIHRpY2sgaXMgMTAwIG5hbm9zZWNvbmRzLiBXaW5kb3dzIGVwb2NoIDE2MDEtMDEtMDFUMDA6MDA6MDBaCiAgICAgLy8gaXMgMTE2NDQ0NzM2MDAgc2Vjb25kcyBiZWZvcmUgVW5peCBlcG9jaCAxOTcwLTAxLTAxVDAwOjAwOjAwWi4KICAgICBUaW1lc3RhbXAgdGltZXN0YW1wOwogICAgIHRpbWVzdGFtcC5zZXRfc2Vjb25kcygoSU5UNjQpICgodGlja3MgLyAxMDAwMDAwMCkgLSAxMTY0NDQ3MzYwMExMKSk7CiAgICAgdGltZXN0YW1wLnNldF9uYW5vcygoSU5UMzIpICgodGlja3MgJSAxMDAwMDAwMCkgKiAxMDApKTsKCiBFeGFtcGxlIDQ6IENvbXB1dGUgVGltZXN0YW1wIGZyb20gSmF2YSBgU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKClgLgoKICAgICBsb25nIG1pbGxpcyA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpOwoKICAgICBUaW1lc3RhbXAgdGltZXN0YW1wID0gVGltZXN0YW1wLm5ld0J1aWxkZXIoKS5zZXRTZWNvbmRzKG1pbGxpcyAvIDEwMDApCiAgICAgICAgIC5zZXROYW5vcygoaW50KSAoKG1pbGxpcyAlIDEwMDApICogMTAwMDAwMCkpLmJ1aWxkKCk7CgoKIEV4YW1wbGUgNTogQ29tcHV0ZSBUaW1lc3RhbXAgZnJvbSBjdXJyZW50IHRpbWUgaW4gUHl0aG9uLgoKICAgICB0aW1lc3RhbXAgPSBUaW1lc3RhbXAoKQogICAgIHRpbWVzdGFtcC5HZXRDdXJyZW50VGltZSgpCgogIyBKU09OIE1hcHBpbmcKCiBJbiBKU09OIGZvcm1hdCwgdGhlIFRpbWVzdGFtcCB0eXBlIGlzIGVuY29kZWQgYXMgYSBzdHJpbmcgaW4gdGhlCiBbUkZDIDMzMzldKGh0dHBzOi8vd3d3LmlldGYub3JnL3JmYy9yZmMzMzM5LnR4dCkgZm9ybWF0LiBUaGF0IGlzLCB0aGUKIGZvcm1hdCBpcyAie3llYXJ9LXttb250aH0te2RheX1Ue2hvdXJ9OnttaW59OntzZWN9Wy57ZnJhY19zZWN9XVoiCiB3aGVyZSB7eWVhcn0gaXMgYWx3YXlzIGV4cHJlc3NlZCB1c2luZyBmb3VyIGRpZ2l0cyB3aGlsZSB7bW9udGh9LCB7ZGF5fSwKIHtob3VyfSwge21pbn0sIGFuZCB7c2VjfSBhcmUgemVyby1wYWRkZWQgdG8gdHdvIGRpZ2l0cyBlYWNoLiBUaGUgZnJhY3Rpb25hbAogc2Vjb25kcywgd2hpY2ggY2FuIGdvIHVwIHRvIDkgZGlnaXRzIChpLmUuIHVwIHRvIDEgbmFub3NlY29uZCByZXNvbHV0aW9uKSwKIGFyZSBvcHRpb25hbC4gVGhlICJaIiBzdWZmaXggaW5kaWNhdGVzIHRoZSB0aW1lem9uZSAoIlVUQyIpOyB0aGUgdGltZXpvbmUKIGlzIHJlcXVpcmVkLiBBIHByb3RvMyBKU09OIHNlcmlhbGl6ZXIgc2hvdWxkIGFsd2F5cyB1c2UgVVRDIChhcyBpbmRpY2F0ZWQgYnkKICJaIikgd2hlbiBwcmludGluZyB0aGUgVGltZXN0YW1wIHR5cGUgYW5kIGEgcHJvdG8zIEpTT04gcGFyc2VyIHNob3VsZCBiZQogYWJsZSB0byBhY2NlcHQgYm90aCBVVEMgYW5kIG90aGVyIHRpbWV6b25lcyAoYXMgaW5kaWNhdGVkIGJ5IGFuIG9mZnNldCkuCgogRm9yIGV4YW1wbGUsICIyMDE3LTAxLTE1VDAxOjMwOjE1LjAxWiIgZW5jb2RlcyAxNS4wMSBzZWNvbmRzIHBhc3QKIDAxOjMwIFVUQyBvbiBKYW51YXJ5IDE1LCAyMDE3LgoKIEluIEphdmFTY3JpcHQsIG9uZSBjYW4gY29udmVydCBhIERhdGUgb2JqZWN0IHRvIHRoaXMgZm9ybWF0IHVzaW5nIHRoZQogc3RhbmRhcmQgW3RvSVNPU3RyaW5nKCldKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0RhdGUvdG9JU09TdHJpbmcpCiBtZXRob2QuIEluIFB5dGhvbiwgYSBzdGFuZGFyZCBgZGF0ZXRpbWUuZGF0ZXRpbWVgIG9iamVjdCBjYW4gYmUgY29udmVydGVkCiB0byB0aGlzIGZvcm1hdCB1c2luZyBbYHN0cmZ0aW1lYF0oaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMi9saWJyYXJ5L3RpbWUuaHRtbCN0aW1lLnN0cmZ0aW1lKQogd2l0aCB0aGUgdGltZSBmb3JtYXQgc3BlYyAnJVktJW0tJWRUJUg6JU06JVMuJWZaJy4gTGlrZXdpc2UsIGluIEphdmEsIG9uZQogY2FuIHVzZSB0aGUgSm9kYSBUaW1lJ3MgW2BJU09EYXRlVGltZUZvcm1hdC5kYXRlVGltZSgpYF0oCiBodHRwOi8vd3d3LmpvZGEub3JnL2pvZGEtdGltZS9hcGlkb2NzL29yZy9qb2RhL3RpbWUvZm9ybWF0L0lTT0RhdGVUaW1lRm9ybWF0Lmh0bWwjZGF0ZVRpbWUlMkQlMkQKICkgdG8gb2J0YWluIGEgZm9ybWF0dGVyIGNhcGFibGUgb2YgZ2VuZXJhdGluZyB0aW1lc3RhbXBzIGluIHRoaXMgZm9ybWF0LgoKCgoKCgMEAAESA3wIEQqdAQoEBAACABIEgQECFBqOASBSZXByZXNlbnRzIHNlY29uZHMgb2YgVVRDIHRpbWUgc2luY2UgVW5peCBlcG9jaAogMTk3MC0wMS0wMVQwMDowMDowMFouIE11c3QgYmUgZnJvbSAwMDAxLTAxLTAxVDAwOjAwOjAwWiB0bwogOTk5OS0xMi0zMVQyMzo1OTo1OVogaW5jbHVzaXZlLgoKDgoFBAACAAQSBYEBAnwTCg0KBQQAAgAFEgSBAQIHCg0KBQQAAgABEgSBAQgPCg0KBQQAAgADEgSBARITCuUBCgQEAAIBEgSHAQISGtYBIE5vbi1uZWdhdGl2ZSBmcmFjdGlvbnMgb2YgYSBzZWNvbmQgYXQgbmFub3NlY29uZCByZXNvbHV0aW9uLiBOZWdhdGl2ZQogc2Vjb25kIHZhbHVlcyB3aXRoIGZyYWN0aW9ucyBtdXN0IHN0aWxsIGhhdmUgbm9uLW5lZ2F0aXZlIG5hbm9zIHZhbHVlcwogdGhhdCBjb3VudCBmb3J3YXJkIGluIHRpbWUuIE11c3QgYmUgZnJvbSAwIHRvIDk5OSw5OTksOTk5CiBpbmNsdXNpdmUuCgoPCgUEAAIBBBIGhwECgQEUCg0KBQQAAgEFEgSHAQIHCg0KBQQAAgEBEgSHAQgNCg0KBQQAAgEDEgSHARARYgZwcm90bzMKpWgKGnZvbHRoYV9wcm90b3MvZXZlbnRzLnByb3RvEgVldmVudBocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90bxofZ29vZ2xlL3Byb3RvYnVmL3RpbWVzdGFtcC5wcm90bxoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8ingEKEkV2ZW50RmlsdGVyUnVsZUtleSKHAQoTRXZlbnRGaWx0ZXJSdWxlVHlwZRIOCgpmaWx0ZXJfYWxsEAASDAoIY2F0ZWdvcnkQARIQCgxzdWJfY2F0ZWdvcnkQAhISCg5rcGlfZXZlbnRfdHlwZRADEhUKEWNvbmZpZ19ldmVudF90eXBlEAQSFQoRZGV2aWNlX2V2ZW50X3R5cGUQBSJoCg9FdmVudEZpbHRlclJ1bGUSPwoDa2V5GAEgASgOMi0uZXZlbnQuRXZlbnRGaWx0ZXJSdWxlS2V5LkV2ZW50RmlsdGVyUnVsZVR5cGVSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWUinwEKC0V2ZW50RmlsdGVyEg4KAmlkGAEgASgJUgJpZBIWCgZlbmFibGUYAiABKAhSBmVuYWJsZRIbCglkZXZpY2VfaWQYAyABKAlSCGRldmljZUlkEh0KCmV2ZW50X3R5cGUYBCABKAlSCWV2ZW50VHlwZRIsCgVydWxlcxgFIAMoCzIWLmV2ZW50LkV2ZW50RmlsdGVyUnVsZVIFcnVsZXMiPAoMRXZlbnRGaWx0ZXJzEiwKB2ZpbHRlcnMYASADKAsyEi5ldmVudC5FdmVudEZpbHRlclIHZmlsdGVycyI7Cg9Db25maWdFdmVudFR5cGUiKAoFVHlwZXMSBwoDYWRkEAASCgoGcmVtb3ZlEAESCgoGdXBkYXRlEAIiZwoLQ29uZmlnRXZlbnQSMAoEdHlwZRgBIAEoDjIcLmV2ZW50LkNvbmZpZ0V2ZW50VHlwZS5UeXBlc1IEdHlwZRISCgRoYXNoGAIgASgJUgRoYXNoEhIKBGRhdGEYAyABKAlSBGRhdGEiKgoMS3BpRXZlbnRUeXBlIhoKBVR5cGVzEgkKBXNsaWNlEAASBgoCdHMQASKqAgoOTWV0cmljTWV0YURhdGESFAoFdGl0bGUYASABKAlSBXRpdGxlEg4KAnRzGAIgASgBUgJ0cxIqChFsb2dpY2FsX2RldmljZV9pZBgDIAEoCVIPbG9naWNhbERldmljZUlkEhsKCXNlcmlhbF9ubxgEIAEoCVIIc2VyaWFsTm8SGwoJZGV2aWNlX2lkGAUgASgJUghkZXZpY2VJZBI8Cgdjb250ZXh0GAYgAygLMiIuZXZlbnQuTWV0cmljTWV0YURhdGEuQ29udGV4dEVudHJ5Ugdjb250ZXh0EhIKBHV1aWQYByABKAlSBHV1aWQaOgoMQ29udGV4dEVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEijgEKEE1ldHJpY1ZhbHVlUGFpcnMSPgoHbWV0cmljcxgBIAMoCzIkLmV2ZW50Lk1ldHJpY1ZhbHVlUGFpcnMuTWV0cmljc0VudHJ5UgdtZXRyaWNzGjoKDE1ldHJpY3NFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBIsMBChFNZXRyaWNJbmZvcm1hdGlvbhIxCghtZXRhZGF0YRgBIAEoCzIVLmV2ZW50Lk1ldHJpY01ldGFEYXRhUghtZXRhZGF0YRI/CgdtZXRyaWNzGAIgAygLMiUuZXZlbnQuTWV0cmljSW5mb3JtYXRpb24uTWV0cmljc0VudHJ5UgdtZXRyaWNzGjoKDE1ldHJpY3NFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoAlIFdmFsdWU6AjgBItoBCghLcGlFdmVudBItCgR0eXBlGAEgASgOMhkuZXZlbnQuS3BpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEg4KAnRzGAIgASgCUgJ0cxI5CghwcmVmaXhlcxgDIAMoCzIdLmV2ZW50LktwaUV2ZW50LlByZWZpeGVzRW50cnlSCHByZWZpeGVzGlQKDVByZWZpeGVzRW50cnkSEAoDa2V5GAEgASgJUgNrZXkSLQoFdmFsdWUYAiABKAsyFy5ldmVudC5NZXRyaWNWYWx1ZVBhaXJzUgV2YWx1ZToCOAEigwEKCUtwaUV2ZW50MhItCgR0eXBlGAEgASgOMhkuZXZlbnQuS3BpRXZlbnRUeXBlLlR5cGVzUgR0eXBlEg4KAnRzGAIgASgBUgJ0cxI3CgpzbGljZV9kYXRhGAMgAygLMhguZXZlbnQuTWV0cmljSW5mb3JtYXRpb25SCXNsaWNlRGF0YSLzAQoLRGV2aWNlRXZlbnQSHwoLcmVzb3VyY2VfaWQYASABKAlSCnJlc291cmNlSWQSKgoRZGV2aWNlX2V2ZW50X25hbWUYAiABKAlSD2RldmljZUV2ZW50TmFtZRIgCgtkZXNjcmlwdGlvbhgDIAEoCVILZGVzY3JpcHRpb24SOQoHY29udGV4dBgEIAMoCzIfLmV2ZW50LkRldmljZUV2ZW50LkNvbnRleHRFbnRyeVIHY29udGV4dBo6CgxDb250ZXh0RW50cnkSEAoDa2V5GAEgASgJUgNrZXkSFAoFdmFsdWUYAiABKAlSBXZhbHVlOgI4ASLaAgoIUlBDRXZlbnQSEAoDcnBjGAEgASgJUgNycGMSIQoMb3BlcmF0aW9uX2lkGAIgASgJUgtvcGVyYXRpb25JZBIYCgdzZXJ2aWNlGAMgASgJUgdzZXJ2aWNlEhkKCHN0YWNrX2lkGAQgASgJUgdzdGFja0lkEh8KC3Jlc291cmNlX2lkGAUgASgJUgpyZXNvdXJjZUlkEiAKC2Rlc2NyaXB0aW9uGAYgASgJUgtkZXNjcmlwdGlvbhI2Cgdjb250ZXh0GAcgAygLMhwuZXZlbnQuUlBDRXZlbnQuQ29udGV4dEVudHJ5Ugdjb250ZXh0Ei0KBnN0YXR1cxgIIAEoCzIVLmNvbW1vbi5PcGVyYXRpb25SZXNwUgZzdGF0dXMaOgoMQ29udGV4dEVudHJ5EhAKA2tleRgBIAEoCVIDa2V5EhQKBXZhbHVlGAIgASgJUgV2YWx1ZToCOAEidgoNRXZlbnRDYXRlZ29yeSJlCgVUeXBlcxIRCg1DT01NVU5JQ0FUSU9OEAASDwoLRU5WSVJPTk1FTlQQARINCglFUVVJUE1FTlQQAhILCgdTRVJWSUNFEAMSDgoKUFJPQ0VTU0lORxAEEgwKCFNFQ1VSSVRZEAUiUgoQRXZlbnRTdWJDYXRlZ29yeSI+CgVUeXBlcxIHCgNQT04QABIHCgNPTFQQARIHCgNPTlQQAhIHCgNPTlUQAxIHCgNOTkkQBBIICgROT05FEAUiZgoJRXZlbnRUeXBlIlkKBVR5cGVzEhAKDENPTkZJR19FVkVOVBAAEg0KCUtQSV9FVkVOVBABEg4KCktQSV9FVkVOVDIQAhIQCgxERVZJQ0VfRVZFTlQQAxINCglSUENfRVZFTlQQBCLcAgoLRXZlbnRIZWFkZXISDgoCaWQYASABKAlSAmlkEjYKCGNhdGVnb3J5GAIgASgOMhouZXZlbnQuRXZlbnRDYXRlZ29yeS5UeXBlc1IIY2F0ZWdvcnkSQAoMc3ViX2NhdGVnb3J5GAMgASgOMh0uZXZlbnQuRXZlbnRTdWJDYXRlZ29yeS5UeXBlc1ILc3ViQ2F0ZWdvcnkSKgoEdHlwZRgEIAEoDjIWLmV2ZW50LkV2ZW50VHlwZS5UeXBlc1IEdHlwZRIhCgx0eXBlX3ZlcnNpb24YBSABKAlSC3R5cGVWZXJzaW9uEjcKCXJhaXNlZF90cxgGIAEo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bkFsYXJtLlJhdGVUaHJlc2hvbGRDb25maWdIAFITcmF0ZVRocmVzaG9sZENvbmZpZxJUChFyYXRlX3JhbmdlX2NvbmZpZxgGIAEoCzImLmNvbmZpZy5PbnVJdHVQb25BbGFybS5SYXRlUmFuZ2VDb25maWdIAFIPcmF0ZVJhbmdlQ29uZmlnEmMKFnZhbHVlX3RocmVzaG9sZF9jb25maWcYByABKAsyKy5jb25maWcuT251SXR1UG9uQWxhcm0uVmFsdWVUaHJlc2hvbGRDb25maWdIAFIUdmFsdWVUaHJlc2hvbGRDb25maWcaXAoIU29ha1RpbWUSKAoQYWN0aXZlX3NvYWtfdGltZRgBIAEoB1IOYWN0aXZlU29ha1RpbWUSJgoPY2xlYXJfc29ha190aW1lGAIgASgHUg1jbGVhclNvYWtUaW1lGr0BChNSYXRlVGhyZXNob2xkQ29uZmlnEjIKFXJhdGVfdGhyZXNob2xkX3Jpc2luZxgBIAEoBlITcmF0ZVRocmVzaG9sZFJpc2luZxI0ChZyYXRlX3RocmVzaG9sZF9mYWxsaW5nGAIgASgGUhRyYXRlVGhyZXNob2xkRmFsbGluZxI8Cglzb2FrX3RpbWUYAyABKAsyHy5jb25maWcuT251SXR1UG9uQWxhcm0uU29ha1RpbWVSCHNvYWtUaW1lGqMBCg9SYXRlUmFuZ2VDb25maWcSKAoQcmF0ZV9yYW5nZV9sb3dlchgBIAEoBlIOcmF0ZVJhbmdlTG93ZXISKAoQcmF0ZV9yYW5nZV91cHBlchgCIAEoBlIOcmF0ZVJhbmdlVXBwZXISPAoJc29ha190aW1lGAMgASgLMh8uY29uZmlnLk9udUl0dVBvbkFsYXJtLlNvYWtUaW1lUghzb2FrVGltZRp9ChRWYWx1ZVRocmVzaG9sZENvbmZpZxInCg90aHJlc2hvbGRfbGltaXQYASABKAZSDnRocmVzaG9sZExpbWl0EjwKCXNvYWtfdGltZRgCIAEoCzIfLmNvbmZpZy5PbnVJdHVQb25BbGFybS5Tb2FrVGltZVIIc29ha1RpbWUiGQoHQWxhcm1JRBIOCgpSRElfRVJST1JTEAAiUgoXQWxhcm1SZXBvcnRpbmdDb25kaXRpb24SEgoOUkFURV9USFJFU0hPTEQQABIOCgpSQVRFX1JBTkdFEAESEwoPVkFMVUVfVEhSRVNIT0xEEAJCCAoGY29uZmlnQkkKE29yZy5vcGVuY29yZC52b2x0aGFaMmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9leHQvY29uZmlnSvgVCgYSBA0ARQEK8QQKAQwSAw0AEhrmBCBDb3B5cmlnaHQgMjAyMC0yMDI0IE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uIChPTkYpIGFuZCB0aGUgT05GIENvbnRyaWJ1dG9ycwoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCggKAQgSAw8ASQoJCgIICxIDDwBJCggKAQISAxEADwoICgEIEgMTACwKCQoCCAESAxMALAoKCgIEABIEFQAZAQoKCgMEAAESAxUIEwoMCgQEAAgAEgQWBBgFCgwKBQQACAABEgMWChAKCwoEBAACABIDFwczCgwKBQQAAgAGEgMXBxUKDAoFBAACAAESAxcWLgoMCgUE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GgoMCgUEAQIDARIDPxs0CgwKBQQBAgMDEgM/NzgKDAoEBAEIABIEQANEBAoMCgUEAQgAARIDQAkPCgsKBAQBAgQSA0EHNQoMCgUEAQIEBhIDQQcaCgwKBQQBAgQBEgNBGzAKDAoFBAECBAMSA0EzNAoLCgQEAQIFEgNCBy0KDAoFBAECBQYSA0IHFgoMCgUEAQIFARIDQhcoCgwKBQQBAgUDEgNCKywKCwoEBAECBhIDQwc3CgwKBQQBAgYGEgNDBxsKDAoFBAECBgESA0McMgoMCgUEAQIGAxIDQzU2YgZwcm90bzMK4OQCCh52b2x0aGFfcHJvdG9zL2V4dGVuc2lvbnMucHJvdG8SCWV4dGVuc2lvbhoedm9sdGhhX3Byb3Rvcy9leHRfY29uZmlnLnByb3RvGhtnb29nbGUvcHJvdG9idWYvZW1wdHkucHJvdG8aGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvIl0KCFZhbHVlU2V0Eg4KAmlkGAEgASgJUgJpZBI4CgxhbGFybV9jb25maWcYAiABKAsyEy5jb25maWcuQWxhcm1Db25maWdIAFILYWxhcm1Db25maWdCBwoFdmFsdWUiLAoJVmFsdWVUeXBlIh8KBFR5cGUSCQoFRU1QVFkQABIMCghESVNUQU5DRRABIlEKDlZhbHVlU3BlY2lmaWVyEg4KAmlkGAEgASgJUgJpZBIvCgV2YWx1ZRgCIAEoDjIZLmV4dGVuc2lvbi5WYWx1ZVR5cGUuVHlwZVIFdmFsdWUidAoMUmV0dXJuVmFsdWVzEhAKA1NldBgBIAEoDVIDU2V0EiAKC1Vuc3VwcG9ydGVkGAIgASgNUgtVbnN1cHBvcnRlZBIUCgVFcnJvchgDIAEoDVIFRXJyb3ISGgoIRGlzdGFuY2UYBCABKA1SCERpc3RhbmNlIjYKEkdldERpc3RhbmNlUmVxdWVzdBIgCgtvbnVEZXZpY2VJZBgBIAEoCVILb251RGV2aWNlSWQiMQoTR2V0RGlzdGFuY2VSZXNwb25zZRIaCghkaXN0YW5jZRgBIAEoDVIIZGlzdGFuY2UiMgoUR2V0T251VW5pSW5mb1JlcXVlc3QSGgoIdW5pSW5kZXgYASABKA1SCHVuaUluZGV4IuEEChVHZXRPbnVVbmlJbmZvUmVzcG9uc2USUAoIYWRtU3RhdGUYASABKA4yNC5leHRlbnNpb24uR2V0T251VW5pSW5mb1Jlc3BvbnNlLkFkbWluaXN0cmF0aXZlU3RhdGVSCGFkbVN0YXRlEk8KCW9wZXJTdGF0ZRgCIAEoDjIxLmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVzcG9uc2UuT3BlcmF0aW9uYWxTdGF0ZVIJb3BlclN0YXRlEk8KCWNvbmZpZ0luZBgDIAEoDjIxLmV4dGVuc2lvbi5HZXRPbnVVbmlJbmZvUmVzcG9uc2UuQ29uZmlndXJhdGlvbkluZFIJY29uZmlnSW5kIsIBChBDb25maWd1cmF0aW9uSW5kEgoKBlVOS09XThAAEhIKDlRFTl9CQVNFX1RfRkRYEAESFgoSSFVORFJFRF9CQVNFX1RfRkRYEAISGAoUR0lHQUJJVF9FVEhFUk5FVF9GRFgQAxIWChJURU5fR19FVEhFUk5FVF9GRFgQBBISCg5URU5fQkFTRV9UX0hEWBAFEhYKEkhVTkRSRURfQkFTRV9UX0hEWBAGEhgKFEdJR0FCSVRfRVRIRVJORVRfSERYEAciRwoTQWRtaW5pc3RyYXRpdmVTdGF0ZRIWChJBRE1TVEFURV9VTkRFRklORUQQABIKCgZMT0NLRUQQARIMCghVTkxPQ0tFRBACIkYKEE9wZXJhdGlvbmFsU3RhdGUSFwoTT1BFUlNUQVRFX1VOREVGSU5FRBAAEgsKB0VOQUJMRUQQARIMCghESVNBQkxFRBACIrcBChJHZXRPbHRQb3J0Q291bnRlcnMSFgoGcG9ydE5vGAEgASgNUgZwb3J0Tm8SQgoIcG9ydFR5cGUYAiABKA4yJi5leHRlbnNpb24uR2V0T2x0UG9ydENvdW50ZXJzLlBvcnRUeXBlUghwb3J0VHlwZSJFCghQb3J0VHlwZRIQCgxQb3J0X1VOS05PV04QABIVChFQb3J0X0VUSEVSTkVUX05OSRABEhAKDFBvcnRfUE9OX09MVBACIswDChpHZXRPbHRQb3J0Q291bnRlcnNSZXNwb25zZRIYCgd0eEJ5dGVzGAEgASgEUgd0eEJ5dGVzEhgKB3J4Qnl0ZXMYAiABKARSB3J4Qnl0ZXMSHAoJdHhQYWNrZXRzGAMgASgEUgl0eFBhY2tldHMSHAoJcnhQYWNrZXRzGAQgASgEUglyeFBhY2tldHMSJgoOdHhFcnJvclBhY2tldHMYBSABKARSDnR4RXJyb3JQYWNrZXRzEiYKDnJ4RXJyb3JQYWNrZXRzGAYgASgEUg5yeEVycm9yUGFja2V0cxImCg50eEJjYXN0UGFja2V0cxgHIAEoBFIOdHhCY2FzdFBhY2tldHMSJgoOcnhCY2FzdFBhY2tldHMYCCABKARSDnJ4QmNhc3RQYWNrZXRzEiYKDnR4VWNhc3RQYWNrZXRzGAkgASgEUg50eFVjYXN0UGFja2V0cxImCg5yeFVjYXN0UGFja2V0cxgKIAEoBFIOcnhVY2FzdFBhY2tldHMSJgoOdHhNY2FzdFBhY2tldHMYCyABKARSDnR4TWNhc3RQYWNrZXRzEiYKDnJ4TWNhc3RQYWNrZXRzGAwgASgEUg5yeE1jYXN0UGFja2V0cyJEChRHZXRPbnVQb25PcHRpY2FsSW5mbxIsCgVlbXB0eRgBIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIFZW1wdHkihAIKHEdldE9udVBvbk9wdGljYWxJbmZvUmVzcG9uc2USKgoQcG93ZXJGZWVkVm9sdGFnZRgBIAEoAlIQcG93ZXJGZWVkVm9sdGFnZRIyChRyZWNlaXZlZE9wdGljYWxQb3dlchgCIAEoAlIUcmVjZWl2ZWRPcHRpY2FsUG93ZXISNgoWbWVhbk9wdGljYWxMYXVuY2hQb3dlchgDIAEoAlIWbWVhbk9wdGljYWxMYXVuY2hQb3dlchIqChBsYXNlckJpYXNDdXJyZW50GAQgASgCUhBsYXNlckJpYXNDdXJyZW50EiAKC3RlbXBlcmF0dXJlGAUgASgCUgt0ZW1wZXJhdHVyZSKvAQofR2V0T251RXRoZXJuZXRCcmlkZ2VQb3J0SGlzdG9yeRJSCglkaXJlY3Rpb24YASABKA4yNC5leHRlbnNpb24uR2V0T251RXRoZXJuZXRCcmlkZ2VQb3J0SGlzdG9yeS5EaXJlY3Rpb25SCWRpcmVjdGlvbiI4CglEaXJlY3Rpb24SDQoJVU5ERUZJTkVEEAASDAoIVVBTVFJFQU0QARIOCgpET1dOU1RSRUFNEAIikwUKJ0dldE9udUV0aGVybmV0QnJpZGdlUG9ydEhpc3RvcnlSZXNwb25zZRIeCgpkcm9wRXZlbnRzGAEgASgNUgpkcm9wRXZlbnRzEhYKBm9jdGV0cxgCIAEoDVIGb2N0ZXRzEhgKB3BhY2tldHMYAyABKA1SB3BhY2tldHMSKgoQYnJvYWRjYXN0UGFja2V0cxgEIAEoDVIQYnJvYWRjYXN0UGFja2V0cxIqChBtdWx0aWNhc3RQYWNrZXRzGAUgASgNUhBtdWx0aWNhc3RQYWNrZXRzEiwKEWNyY0Vycm9yZWRQYWNrZXRzGAYgASgNUhFjcmNFcnJvcmVkUGFja2V0cxIqChB1bmRlcnNpemVQYWNrZXRzGAcgASgNUhB1bmRlcnNpemVQYWNrZXRzEigKD292ZXJzaXplUGFja2V0cxgIIAEoDVIPb3ZlcnNpemVQYWNrZXRzEigKD3BhY2tldHM2NG9jdGV0cxgJIAEoDVIPcGFja2V0czY0b2N0ZXRzEjIKFHBhY2tldHM2NVRvMTI3b2N0ZXRzGAogASgNUhRwYWNrZXRzNjVUbzEyN29jdGV0cxI0ChVwYWNrZXRzMTI4VG8yNTVPY3RldHMYCyABKA1SFXBhY2tldHMxMjhUbzI1NU9jdGV0cxI0ChVwYWNrZXRzMjU2VG81MTFvY3RldHMYDCABKA1SFXBhY2tldHMyNTZUbzUxMW9jdGV0cxI2ChZwYWNrZXRzNTEyVG8xMDIzb2N0ZXRzGA0gASgNUhZwYWNrZXRzNTEyVG8xMDIzb2N0ZXRzEjgKF3BhY2tldHMxMDI0VG8xNTE4b2N0ZXRzGA4gASgNUhdwYWNrZXRzMTAyNFRvMTUxOG9jdGV0cyJMChxHZXRPbnVBbGxvY0dlbUhpc3RvcnlSZXF1ZXN0EiwKBWVtcHR5GAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgVlbXB0eSKvAgoVT251R2VtUG9ydEhpc3RvcnlEYXRhEhQKBWdlbUlkGAEgASgNUgVnZW1JZBIyChR0cmFuc21pdHRlZEdFTUZyYW1lcxgCIAEoDVIUdHJhbnNtaXR0ZWRHRU1GcmFtZXMSLAoRcmVjZWl2ZWRHRU1GcmFtZXMYAyABKA1SEXJlY2VpdmVkR0VNRnJhbWVzEjIKFHJlY2VpdmVkUGF5bG9hZEJ5dGVzGAQgASgNUhRyZWNlaXZlZFBheWxvYWRCeXRlcxI4Chd0cmFuc21pdHRlZFBheWxvYWRCeXRlcxgFIAEoDVIXdHJhbnNtaXR0ZWRQYXlsb2FkQnl0ZXMSMAoTZW5jcnlwdGlvbktleUVycm9ycxgGIAEoDVITZW5jcnlwdGlvbktleUVycm9ycyJJChNPbnVBbGxvY0hpc3RvcnlEYXRhEhgKB2FsbG9jSWQYASABKA1SB2FsbG9jSWQSGAoHcnhCeXRlcxgCIAEoDVIHcnhCeXRlcyKkAQoWT251QWxsb2NHZW1IaXN0b3J5RGF0YRJGCg5vbnVBbGxvY0lkSW5mbxgBIAEoCzIeLmV4dGVuc2lvbi5PbnVBbGxvY0hpc3RvcnlEYXRhUg5vbnVBbGxvY0lkSW5mbxJCCgtnZW1Qb3J0SW5mbxgCIAMoCzIgLmV4dGVuc2lvbi5PbnVHZW1Qb3J0SGlzdG9yeURhdGFSC2dlbVBvcnRJbmZvInoKHUdldE9udUFsbG9jR2VtSGlzdG9yeVJlc3BvbnNlElkKFm9udUFsbG9jR2VtSGlzdG9yeURhdGEYASADKAsyIS5leHRlbnNpb24uT251QWxsb2NHZW1IaXN0b3J5RGF0YVIWb251QWxsb2NHZW1IaXN0b3J5RGF0YSJAChBHZXRPbnVGZWNIaXN0b3J5EiwKBWVtcHR5GAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5UgVlbXB0eSLyAQoYR2V0T251RmVjSGlzdG9yeVJlc3BvbnNlEiYKDmNvcnJlY3RlZEJ5dGVzGAEgASgNUg5jb3JyZWN0ZWRCeXRlcxIuChJjb3JyZWN0ZWRDb2RlV29yZHMYAiABKA1SEmNvcnJlY3RlZENvZGVXb3JkcxIeCgpmZWNTZWNvbmRzGAMgASgNUgpmZWNTZWNvbmRzEiYKDnRvdGFsQ29kZVdvcmRzGAQgASgNUg50b3RhbENvZGVXb3JkcxI2ChZ1bmNvcnJlY3RhYmxlQ29kZVdvcmRzGAUgASgNUhZ1bmNvcnJlY3RhYmxlQ29kZVdvcmRzIkcKFUdldE9udUNvdW50ZXJzUmVxdWVzdBIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZCKNAQolR2V0T21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUmVxdWVzdBIgCgtvbnVEZXZpY2VJZBgBIAEoCVILb251RGV2aWNlSWQSHAoIdW5pSW5kZXgYAiABKA1IAFIIdW5pSW5kZXgSFAoFcmVzZXQYAyABKAhSBXJlc2V0Qg4KDGlzX3VuaV9pbmRleCJDChFHZXRSeFBvd2VyUmVxdWVzdBIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZCJMChRHZXRPbHRSeFBvd2VyUmVxdWVzdBIdCgpwb3J0X2xhYmVsGAEgASgJUglwb3J0TGFiZWwSFQoGb251X3NuGAIgASgJUgVvbnVTbiJaChJHZXRQb25TdGF0c1JlcXVlc3QSHgoJcG9ydExhYmVsGAEgASgJSABSCXBvcnRMYWJlbBIYCgZwb3J0SWQYAiABKAdIAFIGcG9ydElkQgoKCHBvcnRJbmZvIm8KE0dldFBvblN0YXRzUmVzcG9uc2USGAoHcG9uUG9ydBgBIAEoDVIHcG9uUG9ydBI+Cg5wb3J0U3RhdGlzdGljcxgCIAEoCzIWLmNvbW1vbi5Qb3J0U3RhdGlzdGljc1IOcG9ydFN0YXRpc3RpY3MiWgoSR2V0Tk5JU3RhdHNSZXF1ZXN0Eh4KCXBvcnRMYWJlbBgBIAEoCUgAUglwb3J0TGFiZWwSGAoGcG9ydElkGAIgASgHSABSBnBvcnRJZEIKCghwb3J0SW5mbyJvChNHZXROTklTdGF0c1Jlc3BvbnNlEhgKB25uaVBvcnQYASABKA1SB25uaVBvcnQSPgoOcG9ydFN0YXRpc3RpY3MYAiABKAsyFi5jb21tb24uUG9ydFN0YXRpc3RpY3NSDnBvcnRTdGF0aXN0aWNzIkkKGUdldE9udVN0YXRzRnJvbU9sdFJlcXVlc3QSFgoGaW50ZklkGAEgASgHUgZpbnRmSWQSFAoFb251SWQYAiABKAdSBW9udUlkIp0BChVPbnVHZW1Qb3J0SW5mb0Zyb21PbHQSFAoFZ2VtSWQYASABKA1SBWdlbUlkEhwKCXJ4UGFja2V0cxgCIAEoBFIJcnhQYWNrZXRzEhgKB3J4Qnl0ZXMYAyABKARSB3J4Qnl0ZXMSHAoJdHhQYWNrZXRzGAQgASgEUgl0eFBhY2tldHMSGAoHdHhCeXRlcxgFIAEoBFIHdHhCeXRlcyJLChVPbnVBbGxvY0lkSW5mb0Zyb21PbHQSGAoHYWxsb2NJZBgBIAEoDVIHYWxsb2NJZBIYCgdyeEJ5dGVzGAIgASgEUgdyeEJ5dGVzIqkBCh9PbnVBbGxvY0dlbVN0YXRzRnJvbU9sdFJlc3BvbnNlEkIKC2FsbG9jSWRJbmZvGAEgASgLMiAuZXh0ZW5zaW9uLk9udUFsbG9jSWRJbmZvRnJvbU9sdFILYWxsb2NJZEluZm8SQgoLZ2VtUG9ydEluZm8YAiADKAsyIC5leHRlbnNpb24uT251R2VtUG9ydEluZm9Gcm9tT2x0UgtnZW1Qb3J0SW5mbyJ2ChpHZXRPbnVTdGF0c0Zyb21PbHRSZXNwb25zZRJYChFhbGxvY0dlbVN0YXRzSW5mbxgBIAMoCzIqLmV4dGVuc2lvbi5PbnVBbGxvY0dlbVN0YXRzRnJvbU9sdFJlc3BvbnNlUhFhbGxvY0dlbVN0YXRzSW5mbyLkDAoWR2V0T251Q291bnRlcnNSZXNwb25zZRIZCgdpbnRmX2lkGAEgASgHSABSBmludGZJZBIXCgZvbnVfaWQYAiABKAdIAVIFb251SWQSJwoOcG9zaXRpdmVfZHJpZnQYAyABKAZIAlINcG9zaXRpdmVEcmlmdBInCg5uZWdhdGl2ZV9kcmlmdBgEIAEoBkgDUg1uZWdhdGl2ZURyaWZ0EjoKGGRlbGltaXRlcl9taXNzX2RldGVjdGlvbhgFIAEoBkgEUhZkZWxpbWl0ZXJNaXNzRGV0ZWN0aW9uEh8KCmJpcF9lcnJvcnMYBiABKAZIBVIJYmlwRXJyb3JzEh0KCWJpcF91bml0cxgHIAEoBkgGUghiaXBVbml0cxI0ChVmZWNfY29ycmVjdGVkX3N5bWJvbHMYCCABKAZIB1ITZmVjQ29ycmVjdGVkU3ltYm9scxI4ChdmZWNfY29kZXdvcmRzX2NvcnJlY3RlZBgJIAEoBkgIUhVmZWNDb2Rld29yZHNDb3JyZWN0ZWQSQAobZmVjX2NvZGV3b3Jkc191bmNvcnJlY3RhYmxlGAogASgGSAlSGWZlY0NvZGV3b3Jkc1VuY29ycmVjdGFibGUSJQoNZmVjX2NvZGV3b3JkcxgLIAEoBkgKUgxmZWNDb2Rld29yZHMSMAoTZmVjX2NvcnJlY3RlZF91bml0cxgMIAEoBkgLUhFmZWNDb3JyZWN0ZWRVbml0cxIoCg94Z2VtX2tleV9lcnJvcnMYDSABKAZIDFINeGdlbUtleUVycm9ycxIdCgl4Z2VtX2xvc3MYDiABKAZIDVIIeGdlbUxvc3MSKAoPcnhfcGxvYW1zX2Vycm9yGA8gASgGSA5SDXJ4UGxvYW1zRXJyb3ISLQoScnhfcGxvYW1zX25vbl9pZGxlGBAgASgGSA9SD3J4UGxvYW1zTm9uSWRsZRIZCgdyeF9vbWNpGBEgASgGSBBSBnJ4T21jaRIZCgd0eF9vbWNpGBIgASgGSBFSBnR4T21jaRI6ChlyeF9vbWNpX3BhY2tldHNfY3JjX2Vycm9yGBMgASgGSBJSFXJ4T21jaVBhY2tldHNDcmNFcnJvchIbCghyeF9ieXRlcxgUIAEoBkgTUgdyeEJ5dGVzEh8KCnJ4X3BhY2tldHMYFSABKAZIFFIJcnhQYWNrZXRzEhsKCHR4X2J5dGVzGBYgASgGSBVSB3R4Qnl0ZXMSHwoKdHhfcGFja2V0cxgXIAEoBkgWUgl0eFBhY2tldHMSIwoMYmVyX3JlcG9ydGVkGBggASgGSBdSC2JlclJlcG9ydGVkEiEKC2xjZGdfZXJyb3JzGBkgASgGSBhSCmxjZGdFcnJvcnMSHwoKcmRpX2Vycm9ycxgaIAEoBkgZUglyZGlFcnJvcnMSHgoJdGltZXN0YW1wGBsgASgHSBpSCXRpbWVzdGFtcEIMCgppc19pbnRmX2lkQgsKCWlzX29udV9pZEITChFpc19wb3NpdGl2ZV9kcmlmdEITChFpc19uZWdhdGl2ZV9kcmlmdEIdChtpc19kZWxpbWl0ZXJfbWlzc19kZXRlY3Rpb25CDwoNaXNfYmlwX2Vycm9yc0IOCgxpc19iaXBfdW5pdHNCGgoYaXNfZmVjX2NvcnJlY3RlZF9zeW1ib2xzQhwKGmlzX2ZlY19jb2Rld29yZHNfY29ycmVjdGVkQiAKHmlzX2ZlY19jb2Rld29yZHNfdW5jb3JyZWN0YWJsZUISChBpc19mZWNfY29kZXdvcmRzQhgKFmlzX2ZlY19jb3JyZWN0ZWRfdW5pdHNCFAoSaXNfeGdlbV9rZXlfZXJyb3JzQg4KDGlzX3hnZW1fbG9zc0IUChJpc19yeF9wbG9hbXNfZXJyb3JCFwoVaXNfcnhfcGxvYW1zX25vbl9pZGxlQgwKCmlzX3J4X29tY2lCDAoKaXNfdHhfb21jaUIeChxpc19yeF9vbWNpX3BhY2tldHNfY3JjX2Vycm9yQg0KC2lzX3J4X2J5dGVzQg8KDWlzX3J4X3BhY2tldHNCDQoLaXNfdHhfYnl0ZXNCDwoNaXNfdHhfcGFja2V0c0IRCg9pc19iZXJfcmVwb3J0ZWRCEAoOaXNfbGNkZ19lcnJvcnNCDwoNaXNfcmRpX2Vycm9yc0IOCgxpc190aW1lc3RhbXAijAUKG09tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbRIfCgtkcm9wX2V2ZW50cxgBIAEoBlIKZHJvcEV2ZW50cxIWCgZvY3RldHMYAiABKAZSBm9jdGV0cxIWCgZmcmFtZXMYAyABKAZSBmZyYW1lcxIpChBicm9hZGNhc3RfZnJhbWVzGAQgASgGUg9icm9hZGNhc3RGcmFtZXMSKQoQbXVsdGljYXN0X2ZyYW1lcxgFIAEoBlIPbXVsdGljYXN0RnJhbWVzEiwKEmNyY19lcnJvcmVkX2ZyYW1lcxgGIAEoBlIQY3JjRXJyb3JlZEZyYW1lcxIpChB1bmRlcnNpemVfZnJhbWVzGAcgASgGUg91bmRlcnNpemVGcmFtZXMSJwoPb3ZlcnNpemVfZnJhbWVzGAggASgGUg5vdmVyc2l6ZUZyYW1lcxIoChBmcmFtZXNfNjRfb2N0ZXRzGAkgASgGUg5mcmFtZXM2NE9jdGV0cxI0ChdmcmFtZXNfNjVfdG9fMTI3X29jdGV0cxgKIAEoBlITZnJhbWVzNjVUbzEyN09jdGV0cxI2ChhmcmFtZXNfMTI4X3RvXzI1NV9vY3RldHMYCyABKAZSFGZyYW1lczEyOFRvMjU1T2N0ZXRzEjYKGGZyYW1lc18yNTZfdG9fNTExX29jdGV0cxgMIAEoBlIUZnJhbWVzMjU2VG81MTFPY3RldHMSOAoZZnJhbWVzXzUxMl90b18xMDIzX29jdGV0cxgNIAEoBlIVZnJhbWVzNTEyVG8xMDIzT2N0ZXRzEjoKGmZyYW1lc18xMDI0X3RvXzE1MThfb2N0ZXRzGA4gASgGUhZmcmFtZXMxMDI0VG8xNTE4T2N0ZXRzIvQCCiZHZXRPbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG1SZXNwb25zZRJCCgh1cHN0cmVhbRgBIAEoCzImLmV4dGVuc2lvbi5PbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG1SCHVwc3RyZWFtEkYKCmRvd25zdHJlYW0YAiABKAsyJi5leHRlbnNpb24uT21jaUV0aGVybmV0RnJhbWVFeHRlbmRlZFBtUgpkb3duc3RyZWFtEosBCiZvbWNpX2V0aGVybmV0X2ZyYW1lX2V4dGVuZGVkX3BtX2Zvcm1hdBgDIAEoDjI4LmV4dGVuc2lvbi5HZXRPbWNpRXRoZXJuZXRGcmFtZUV4dGVuZGVkUG1SZXNwb25zZS5Gb3JtYXRSIW9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbUZvcm1hdCIwCgZGb3JtYXQSEgoOVEhJUlRZX1RXT19CSVQQABISCg5TSVhUWV9GT1VSX0JJVBABInQKB1J4UG93ZXISFQoGb251X3NuGAEgASgJUgVvbnVTbhIWCgZzdGF0dXMYAiABKAlSBnN0YXR1cxIfCgtmYWlsX3JlYXNvbhgDIAEoCVIKZmFpbFJlYXNvbhIZCghyeF9wb3dlchgEIAEoAVIHcnhQb3dlciJlChVHZXRPbHRSeFBvd2VyUmVzcG9uc2USHQoKcG9ydF9sYWJlbBgBIAEoCVIJcG9ydExhYmVsEi0KCHJ4X3Bvd2VyGAIgAygLMhIuZXh0ZW5zaW9uLlJ4UG93ZXJSB3J4UG93ZXIimAEKEkdldFJ4UG93ZXJSZXNwb25zZRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIfCgtmYWlsX3JlYXNvbhgEIAEoCVIKZmFpbFJlYXNvbhIZCghyeF9wb3dlchgFIAEoAVIHcnhQb3dlciJKChpHZXRPbnVPbWNpVHhSeFN0YXRzUmVxdWVzdBIsCgVlbXB0eRgBIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIFZW1wdHki8QMKG0dldE9udU9tY2lUeFJ4U3RhdHNSZXNwb25zZRIpChFiYXNlX3R4X2FyX2ZyYW1lcxgBIAEoDVIOYmFzZVR4QXJGcmFtZXMSKQoRYmFzZV9yeF9ha19mcmFtZXMYAiABKA1SDmJhc2VSeEFrRnJhbWVzEi4KFGJhc2VfdHhfbm9fYXJfZnJhbWVzGAMgASgNUhBiYXNlVHhOb0FyRnJhbWVzEi4KFGJhc2Vfcnhfbm9fYWtfZnJhbWVzGAQgASgNUhBiYXNlUnhOb0FrRnJhbWVzEicKEGV4dF90eF9hcl9mcmFtZXMYBSABKA1SDWV4dFR4QXJGcmFtZXMSJwoQZXh0X3J4X2FrX2ZyYW1lcxgGIAEoDVINZXh0UnhBa0ZyYW1lcxIsChNleHRfdHhfbm9fYXJfZnJhbWVzGAcgASgNUg9leHRUeE5vQXJGcmFtZXMSLAoTZXh0X3J4X25vX2FrX2ZyYW1lcxgIIAEoDVIPZXh0UnhOb0FrRnJhbWVzEjUKF3R4X29tY2lfY291bnRlcl9yZXRyaWVzGAkgASgNUhR0eE9tY2lDb3VudGVyUmV0cmllcxI3Chh0eF9vbWNpX2NvdW50ZXJfdGltZW91dHMYCiABKA1SFXR4T21jaUNvdW50ZXJUaW1lb3V0cyJNCh1HZXRPbnVPbWNpQWN0aXZlQWxhcm1zUmVxdWVzdBIsCgVlbXB0eRgBIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eVIFZW1wdHkifQoJQWxhcm1EYXRhEhkKCGNsYXNzX2lkGAEgASgNUgdjbGFzc0lkEh8KC2luc3RhbmNlX2lkGAIgASgNUgppbnN0YW5jZUlkEhIKBG5hbWUYAyABKAlSBG5hbWUSIAoLZGVzY3JpcHRpb24YBCABKAlSC2Rlc2NyaXB0aW9uIlsKHkdldE9udU9tY2lBY3RpdmVBbGFybXNSZXNwb25zZRI5Cg1hY3RpdmVfYWxhcm1zGAEgAygLMhQuZXh0ZW5zaW9uLkFsYXJtRGF0YVIMYWN0aXZlQWxhcm1zIsIBCiFHZXRPZmZsb2FkZWRBcHBzU3RhdGlzdGljc1JlcXVlc3QSVQoIc3RhdHNGb3IYASABKA4yOS5leHRlbnNpb24uR2V0T2ZmbG9hZGVkQXBwc1N0YXRpc3RpY3NSZXF1ZXN0Lk9mZmxvYWRlZEFwcFIIc3RhdHNGb3IiRgoMT2ZmbG9hZGVkQXBwEg0KCVVOREVGSU5FRBAAEgsKB1BQUG9lSUEQARIMCghESENQdjRSQRACEgwKCERIQ1B2NlJBEAMiixYKIkdldE9mZmxvYWRlZEFwcHNTdGF0aXN0aWNzUmVzcG9uc2USYwoNZGhjcHY0UmFTdGF0cxgBIAEoCzI7LmV4dGVuc2lvbi5HZXRPZmZsb2FkZWRBcHBzU3RhdGlzdGljc1Jlc3BvbnNlLkRIQ1B2NFJBU3RhdHNIAFINZGhjcHY0UmFTdGF0cxJjCg1kaGNwdjZSYVN0YXRzGAIgASgLMjsuZXh0ZW5zaW9uLkdldE9mZmxvYWRlZEFwcHNTdGF0aXN0aWNzUmVzcG9uc2UuREhDUHY2UkFTdGF0c0gAUg1kaGNwdjZSYVN0YXRzEmAKDHBwcG9lSWFTdGF0cxgDIAEoCzI6LmV4dGVuc2lvbi5HZXRPZmZsb2FkZWRBcHBzU3RhdGlzdGljc1Jlc3BvbnNlLlBQUG9lSUFTdGF0c0gAUgxwcHBvZUlhU3RhdHMa+wUKDURIQ1B2NFJBU3RhdHMSOgoaaW5fYmFkX3BhY2tldHNfZnJvbV9jbGllbnQYASABKA1SFmluQmFkUGFja2V0c0Zyb21DbGllbnQSOgoaaW5fYmFkX3BhY2tldHNfZnJvbV9zZXJ2ZXIYAiABKA1SFmluQmFkUGFja2V0c0Zyb21TZXJ2ZXISMwoWaW5fcGFja2V0c19mcm9tX2NsaWVudBgDIAEoDVITaW5QYWNrZXRzRnJvbUNsaWVudBIzChZpbl9wYWNrZXRzX2Zyb21fc2VydmVyGAQgASgNUhNpblBhY2tldHNGcm9tU2VydmVyEjEKFW91dF9wYWNrZXRzX3RvX3NlcnZlchgFIAEoDVISb3V0UGFja2V0c1RvU2VydmVyEjEKFW91dF9wYWNrZXRzX3RvX2NsaWVudBgGIAEoDVISb3V0UGFja2V0c1RvQ2xpZW50Ek0KJG9wdGlvbl84Ml9pbnNlcnRlZF9wYWNrZXRzX3RvX3NlcnZlchgHIAEoDVIfb3B0aW9uODJJbnNlcnRlZFBhY2tldHNUb1NlcnZlchJLCiNvcHRpb25fODJfcmVtb3ZlZF9wYWNrZXRzX3RvX2NsaWVudBgIIAEoDVIeb3B0aW9uODJSZW1vdmVkUGFja2V0c1RvQ2xpZW50EkUKIG9wdGlvbl84Ml9ub3RfaW5zZXJ0ZWRfdG9fc2VydmVyGAkgASgNUhtvcHRpb244Mk5vdEluc2VydGVkVG9TZXJ2ZXISewoQYWRkaXRpb25hbF9zdGF0cxgKIAMoCzJQLmV4dGVuc2lvbi5HZXRPZmZsb2FkZWRBcHBzU3RhdGlzdGljc1Jlc3BvbnNlLkRIQ1B2NFJBU3RhdHMuQWRkaXRpb25hbFN0YXRzRW50cnlSD2FkZGl0aW9uYWxTdGF0cxpCChRBZGRpdGlvbmFsU3RhdHNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBGvUGCg1ESENQdjZSQVN0YXRzEjoKGmluX2JhZF9wYWNrZXRzX2Zyb21fY2xpZW50GAEgASgNUhZpbkJhZFBhY2tldHNGcm9tQ2xpZW50EjoKGmluX2JhZF9wYWNrZXRzX2Zyb21fc2VydmVyGAIgASgNUhZpbkJhZFBhY2tldHNGcm9tU2VydmVyEk0KJG9wdGlvbl8xN19pbnNlcnRlZF9wYWNrZXRzX3RvX3NlcnZlchgDIAEoDVIfb3B0aW9uMTdJbnNlcnRlZFBhY2tldHNUb1NlcnZlchJLCiNvcHRpb25fMTdfcmVtb3ZlZF9wYWNrZXRzX3RvX2NsaWVudBgEIAEoDVIeb3B0aW9uMTdSZW1vdmVkUGFja2V0c1RvQ2xpZW50Ek0KJG9wdGlvbl8xOF9pbnNlcnRlZF9wYWNrZXRzX3RvX3NlcnZlchgFIAEoDVIfb3B0aW9uMThJbnNlcnRlZFBhY2tldHNUb1NlcnZlchJLCiNvcHRpb25fMThfcmVtb3ZlZF9wYWNrZXRzX3RvX2NsaWVudBgGIAEoDVIeb3B0aW9uMThSZW1vdmVkUGFja2V0c1RvQ2xpZW50Ek0KJG9wdGlvbl8zN19pbnNlcnRlZF9wYWNrZXRzX3RvX3NlcnZlchgHIAEoDVIfb3B0aW9uMzdJbnNlcnRlZFBhY2tldHNUb1NlcnZlchJLCiNvcHRpb25fMzdfcmVtb3ZlZF9wYWNrZXRzX3RvX2NsaWVudBgIIAEoDVIeb3B0aW9uMzdSZW1vdmVkUGFja2V0c1RvQ2xpZW50ElcKKW91dGdvaW5nX210dV9leGNlZWRlZF9wYWNrZXRzX2Zyb21fY2xpZW50GAkgASgNUiRvdXRnb2luZ010dUV4Y2VlZGVkUGFja2V0c0Zyb21DbGllbnQSewoQYWRkaXRpb25hbF9zdGF0cxgKIAMoCzJQLmV4dGVuc2lvbi5HZXRPZmZsb2FkZWRBcHBzU3RhdGlzdGljc1Jlc3BvbnNlLkRIQ1B2NlJBU3RhdHMuQWRkaXRpb25hbFN0YXRzRW50cnlSD2FkZGl0aW9uYWxTdGF0cxpCChRBZGRpdGlvbmFsU3RhdHNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBGrkGCgxQUFBvZUlBU3RhdHMSPgocaW5fZXJyb3JfcGFja2V0c19mcm9tX2NsaWVudBgBIAEoDVIYaW5FcnJvclBhY2tldHNGcm9tQ2xpZW50Ej4KHGluX2Vycm9yX3BhY2tldHNfZnJvbV9zZXJ2ZXIYAiABKA1SGGluRXJyb3JQYWNrZXRzRnJvbVNlcnZlchIzChZpbl9wYWNrZXRzX2Zyb21fY2xpZW50GAMgASgNUhNpblBhY2tldHNGcm9tQ2xpZW50EjMKFmluX3BhY2tldHNfZnJvbV9zZXJ2ZXIYBCABKA1SE2luUGFja2V0c0Zyb21TZXJ2ZXISMQoVb3V0X3BhY2tldHNfdG9fc2VydmVyGAUgASgNUhJvdXRQYWNrZXRzVG9TZXJ2ZXISMQoVb3V0X3BhY2tldHNfdG9fY2xpZW50GAYgASgNUhJvdXRQYWNrZXRzVG9DbGllbnQSYAoudmVuZG9yX3NwZWNpZmljX3RhZ19pbnNlcnRlZF9wYWNrZXRzX3RvX3NlcnZlchgHIAEoDVIodmVuZG9yU3BlY2lmaWNUYWdJbnNlcnRlZFBhY2tldHNUb1NlcnZlchJeCi12ZW5kb3Jfc3BlY2lmaWNfdGFnX3JlbW92ZWRfcGFja2V0c190b19jbGllbnQYCCABKA1SJ3ZlbmRvclNwZWNpZmljVGFnUmVtb3ZlZFBhY2tldHNUb0NsaWVudBJXCilvdXRnb2luZ19tdHVfZXhjZWVkZWRfcGFja2V0c19mcm9tX2NsaWVudBgJIAEoDVIkb3V0Z29pbmdNdHVFeGNlZWRlZFBhY2tldHNGcm9tQ2xpZW50EnoKEGFkZGl0aW9uYWxfc3RhdHMYCiADKAsyTy5leHRlbnNpb24uR2V0T2ZmbG9hZGVkQXBwc1N0YXRpc3RpY3NSZXNwb25zZS5QUFBvZUlBU3RhdHMuQWRkaXRpb25hbFN0YXRzRW50cnlSD2FkZGl0aW9uYWxTdGF0cxpCChRBZGRpdGlvbmFsU3RhdHNFbnRyeRIQCgNrZXkYASABKAlSA2tleRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWU6AjgBQgcKBXN0YXRzIvgJCg9HZXRWYWx1ZVJlcXVlc3QSOwoIZGlzdGFuY2UYASABKAsyHS5leHRlbnNpb24uR2V0RGlzdGFuY2VSZXF1ZXN0SABSCGRpc3RhbmNlEjsKB3VuaUluZm8YAiABKAsyHy5leHRlbnNpb24uR2V0T251VW5pSW5mb1JlcXVlc3RIAFIHdW5pSW5mbxJBCgtvbHRQb3J0SW5mbxgDIAEoCzIdLmV4dGVuc2lvbi5HZXRPbHRQb3J0Q291bnRlcnNIAFILb2x0UG9ydEluZm8SSQoOb251T3B0aWNhbEluZm8YBCABKAsyHy5leHRlbnNpb24uR2V0T251UG9uT3B0aWNhbEluZm9IAFIOb251T3B0aWNhbEluZm8SUgoNZXRoQnJpZGdlUG9ydBgFIAEoCzIqLmV4dGVuc2lvbi5HZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5SABSDWV0aEJyaWRnZVBvcnQSPQoKZmVjSGlzdG9yeRgGIAEoCzIbLmV4dGVuc2lvbi5HZXRPbnVGZWNIaXN0b3J5SABSCmZlY0hpc3RvcnkSQgoKb251UG9uSW5mbxgHIAEoCzIgLmV4dGVuc2lvbi5HZXRPbnVDb3VudGVyc1JlcXVlc3RIAFIKb251UG9uSW5mbxJMCgdvbnVJbmZvGAggASgLMjAuZXh0ZW5zaW9uLkdldE9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVJlcXVlc3RIAFIHb251SW5mbxI4CgdyeFBvd2VyGAkgASgLMhwuZXh0ZW5zaW9uLkdldFJ4UG93ZXJSZXF1ZXN0SABSB3J4UG93ZXISSwoMb251T21jaVN0YXRzGAogASgLMiUuZXh0ZW5zaW9uLkdldE9udU9tY2lUeFJ4U3RhdHNSZXF1ZXN0SABSDG9udU9tY2lTdGF0cxJBCgpvbHRSeFBvd2VyGAsgASgLMh8uZXh0ZW5zaW9uLkdldE9sdFJ4UG93ZXJSZXF1ZXN0SABSCm9sdFJ4UG93ZXISVAoPb251QWN0aXZlQWxhcm1zGAwgASgLMiguZXh0ZW5zaW9uLkdldE9udU9tY2lBY3RpdmVBbGFybXNSZXF1ZXN0SABSD29udUFjdGl2ZUFsYXJtcxJeChJvZmZsb2FkZWRBcHBzU3RhdHMYDSABKAsyLC5leHRlbnNpb24uR2V0T2ZmbG9hZGVkQXBwc1N0YXRpc3RpY3NSZXF1ZXN0SABSEm9mZmxvYWRlZEFwcHNTdGF0cxJVChBvbnVBbGxvY0dlbVN0YXRzGA4gASgLMicuZXh0ZW5zaW9uLkdldE9udUFsbG9jR2VtSGlzdG9yeVJlcXVlc3RIAFIQb251QWxsb2NHZW1TdGF0cxJQCg9vbnVTdGF0c0Zyb21PbHQYDyABKAsyJC5leHRlbnNpb24uR2V0T251U3RhdHNGcm9tT2x0UmVxdWVzdEgAUg9vbnVTdGF0c0Zyb21PbHQSQQoLb2x0UG9uU3RhdHMYECABKAsyHS5leHRlbnNpb24uR2V0UG9uU3RhdHNSZXF1ZXN0SABSC29sdFBvblN0YXRzEkEKC29sdE5uaVN0YXRzGBEgASgLMh0uZXh0ZW5zaW9uLkdldE5OSVN0YXRzUmVxdWVzdEgAUgtvbHRObmlTdGF0c0IJCgdyZXF1ZXN0IucNChBHZXRWYWx1ZVJlc3BvbnNlEjoKBnN0YXR1cxgBIAEoDjIiLmV4dGVuc2lvbi5HZXRWYWx1ZVJlc3BvbnNlLlN0YXR1c1IGc3RhdHVzEkUKCWVyclJlYXNvbhgCIAEoDjInLmV4dGVuc2lvbi5HZXRWYWx1ZVJlc3BvbnNlLkVycm9yUmVhc29uUgllcnJSZWFzb24SPAoIZGlzdGFuY2UYAyABKAsyHi5leHRlbnNpb24uR2V0RGlzdGFuY2VSZXNwb25zZUgAUghkaXN0YW5jZRI8Cgd1bmlJbmZvGAQgASgLMiAuZXh0ZW5zaW9uLkdldE9udVVuaUluZm9SZXNwb25zZUgAUgd1bmlJbmZvEksKDHBvcnRDb3V0bmVycxgFIAEoCzIlLmV4dGVuc2lvbi5HZXRPbHRQb3J0Q291bnRlcnNSZXNwb25zZUgAUgxwb3J0Q291dG5lcnMSUQoOb251T3B0aWNhbEluZm8YBiABKAsyJy5leHRlbnNpb24uR2V0T251UG9uT3B0aWNhbEluZm9SZXNwb25zZUgAUg5vbnVPcHRpY2FsSW5mbxJiChFldGhCcmlkZ2VQb3J0SW5mbxgHIAEoCzIyLmV4dGVuc2lvbi5HZXRPbnVFdGhlcm5ldEJyaWRnZVBvcnRIaXN0b3J5UmVzcG9uc2VIAFIRZXRoQnJpZGdlUG9ydEluZm8SRQoKZmVjSGlzdG9yeRgIIAEoCzIjLmV4dGVuc2lvbi5HZXRPbnVGZWNIaXN0b3J5UmVzcG9uc2VIAFIKZmVjSGlzdG9yeRJLCg5vbnVQb25Db3VudGVycxgJIAEoCzIhLmV4dGVuc2lvbi5HZXRPbnVDb3VudGVyc1Jlc3BvbnNlSABSDm9udVBvbkNvdW50ZXJzElUKC29udUNvdW50ZXJzGAogASgLMjEuZXh0ZW5zaW9uLkdldE9tY2lFdGhlcm5ldEZyYW1lRXh0ZW5kZWRQbVJlc3BvbnNlSABSC29udUNvdW50ZXJzEjkKB3J4UG93ZXIYCyABKAsyHS5leHRlbnNpb24uR2V0UnhQb3dlclJlc3BvbnNlSABSB3J4UG93ZXISTAoMb251T21jaVN0YXRzGAwgASgLMiYuZXh0ZW5zaW9uLkdldE9udU9tY2lUeFJ4U3RhdHNSZXNwb25zZUgAUgxvbnVPbWNpU3RhdHMSQgoKb2x0UnhQb3dlchgNIAEoCzIgLmV4dGVuc2lvbi5HZXRPbHRSeFBvd2VyUmVzcG9uc2VIAFIKb2x0UnhQb3dlchJVCg9vbnVBY3RpdmVBbGFybXMYDiABKAsyKS5leHRlbnNpb24uR2V0T251T21jaUFjdGl2ZUFsYXJtc1Jlc3BvbnNlSABSD29udUFjdGl2ZUFsYXJtcxJfChJvZmZsb2FkZWRBcHBzU3RhdHMYDyABKAsyLS5leHRlbnNpb24uR2V0T2ZmbG9hZGVkQXBwc1N0YXRpc3RpY3NSZXNwb25zZUgAUhJvZmZsb2FkZWRBcHBzU3RhdHMSZgoYb251QWxsb2NHZW1TdGF0c1Jlc3BvbnNlGBAgASgLMiguZXh0ZW5zaW9uLkdldE9udUFsbG9jR2VtSGlzdG9yeVJlc3BvbnNlSABSGG9udUFsbG9jR2VtU3RhdHNSZXNwb25zZRJhChdvbnVTdGF0c0Zyb21PbHRSZXNwb25zZRgRIAEoCzIlLmV4dGVuc2lvbi5HZXRPbnVTdGF0c0Zyb21PbHRSZXNwb25zZUgAUhdvbnVTdGF0c0Zyb21PbHRSZXNwb25zZRJSChNvbHRQb25TdGF0c1Jlc3BvbnNlGBIgASgLMh4uZXh0ZW5zaW9uLkdldFBvblN0YXRzUmVzcG9uc2VIAFITb2x0UG9uU3RhdHNSZXNwb25zZRJSChNvbHRObmlTdGF0c1Jlc3BvbnNlGBMgASgLMh4uZXh0ZW5zaW9uLkdldE5OSVN0YXRzUmVzcG9uc2VIAFITb2x0Tm5pU3RhdHNSZXNwb25zZSIxCgZTdGF0dXMSFAoQU1RBVFVTX1VOREVGSU5FRBAAEgYKAk9LEAESCQoFRVJST1IQAiKtAQoLRXJyb3JSZWFzb24SFAoQUkVBU09OX1VOREVGSU5FRBAAEg8KC1VOU1VQUE9SVEVEEAESFQoRSU5WQUxJRF9ERVZJQ0VfSUQQAhIVChFJTlZBTElEX1BPUlRfVFlQRRADEgsKB1RJTUVPVVQQBBIUChBJTlZBTElEX1JFUV9UWVBFEAUSEgoOSU5URVJOQUxfRVJST1IQBhISCg5JTlZBTElEX0RFVklDRRAHQgoKCHJlc3BvbnNlIqwBChBBcHBPZmZsb2FkQ29uZmlnEiYKDmVuYWJsZURIQ1B2NFJBGAEgASgIUg5lbmFibGVESENQdjRSQRImCg5lbmFibGVESENQdjZSQRgCIAEoCFIOZW5hYmxlREhDUHY2UkESJAoNZW5hYmxlUFBQb0VJQRgDIAEoCFINZW5hYmxlUFBQb0VJQRIiCgxhY2Nlc3NOb2RlSUQYBCABKAlSDGFjY2Vzc05vZGVJRCL+AQoTQXBwT2ZmbG9hZE9udUNvbmZpZxIgCgtvbnVEZXZpY2VJZBgBIAEoCVILb251RGV2aWNlSWQSSwoKcGVyVW5pSW5mbxgFIAMoCzIrLmV4dGVuc2lvbi5BcHBPZmZsb2FkT251Q29uZmlnLlBlclVuaUNvbmZpZ1IKcGVyVW5pSW5mbxp4CgxQZXJVbmlDb25maWcSJAoNYWdlbnRSZW1vdGVJRBgCIAEoCVINYWdlbnRSZW1vdGVJRBImCg5hZ2VudENpcmN1aXRJRBgDIAEoCVIOYWdlbnRDaXJjdWl0SUQSGgoIb251VW5pSWQYBCABKA1SCG9udVVuaUlkIvoBCg9TZXRWYWx1ZVJlcXVlc3QSOAoMYWxhcm1fY29uZmlnGAEgASgLMhMuY29uZmlnLkFsYXJtQ29uZmlnSABSC2FsYXJtQ29uZmlnEksKEmFwcF9vZmZsb2FkX2NvbmZpZxgCIAEoCzIbLmV4dGVuc2lvbi5BcHBPZmZsb2FkQ29uZmlnSABSEGFwcE9mZmxvYWRDb25maWcSVQoWYXBwX29mZmxvYWRfb251X2NvbmZpZxgDIAEoCzIeLmV4dGVuc2lvbi5BcHBPZmZsb2FkT251Q29uZmlnSABSE2FwcE9mZmxvYWRPbnVDb25maWdCCQoHcmVxdWVzdCLEAgoQU2V0VmFsdWVSZXNwb25zZRI6CgZzdGF0dXMYASABKA4yIi5leHRlbnNpb24uU2V0VmFsdWVSZXNwb25zZS5TdGF0dXNSBnN0YXR1cxJFCgllcnJSZWFzb24YAiABKA4yJy5leHRlbnNpb24uU2V0VmFsdWVSZXNwb25zZS5FcnJvclJlYXNvblIJZXJyUmVhc29uIjEKBlN0YXR1cxIUChBTVEFUVVNfVU5ERUZJTkVEEAASBgoCT0sQARIJCgVFUlJPUhACInoKC0Vycm9yUmVhc29uEhQKEFJFQVNPTl9VTkRFRklORUQQABIPCgtVTlNVUFBPUlRFRBABEhUKEUlOVkFMSURfREVWSUNFX0lEEAISGQoVSU5WQUxJRF9PTlVfREVWSUNFX0lEEAMSEgoOSU5WQUxJRF9VTklfSUQQBCJpChVTaW5nbGVHZXRWYWx1ZVJlcXVlc3QSGgoIdGFyZ2V0SWQYASABKAlSCHRhcmdldElkEjQKB3JlcXVlc3QYAiABKAsyGi5leHRlbnNpb24uR2V0VmFsdWVSZXF1ZXN0UgdyZXF1ZXN0IlEKFlNpbmdsZUdldFZhbHVlUmVzcG9uc2USNwoIcmVzcG9uc2UYASABKAsyGy5leHRlbnNpb24uR2V0VmFsdWVSZXNwb25zZVIIcmVzcG9uc2UiaQoVU2luZ2xlU2V0VmFsdWVSZXF1ZXN0EhoKCHRhcmdldElkGAEgASgJUgh0YXJnZXRJZBI0CgdyZXF1ZXN0GAIgASgLMhouZXh0ZW5zaW9uLlNldFZhbHVlUmVxdWVzdFIHcmVxdWVzdCJRChZTaW5nbGVTZXRWYWx1ZVJlc3BvbnNlEjcKCHJlc3BvbnNlGAEgASgLMhsuZXh0ZW5zaW9uLlNldFZhbHVlUmVzcG9uc2VSCHJlc3BvbnNlMrMBCglFeHRlbnNpb24SUgoLR2V0RXh0VmFsdWUSIC5leHRlbnNpb24uU2luZ2xlR2V0VmFsdWVSZXF1ZXN0GiEuZXh0ZW5zaW9uLlNpbmdsZUdldFZhbHVlUmVzcG9uc2USUgoLU2V0RXh0VmFsdWUSIC5leHRlbnNpb24uU2luZ2xlU2V0VmFsdWVSZXF1ZXN0GiEuZXh0ZW5zaW9uLlNpbmdsZVNldFZhbHVlUmVzcG9uc2VCUgodb3JnLm9wZW5jb3JkLnZvbHRoYS5leHRlbnNpb25aMWdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9leHRlbnNpb25K0N4BCgcSBQ4ApAUBCvEECgEMEgMOABIy5gQgQ29weXJpZ2h0IDIwMTgtMjAyNCBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbiAoT05GKSBhbmQgdGhlIE9ORiBDb250cmlidXRvcnMKCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKCiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAog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fAondm9sdGhhX3Byb3Rvcy92b2lwX3N5c3RlbV9wcm9maWxlLnByb3RvEhN2b2lwX3N5c3RlbV9wcm9maWxlGhxnb29nbGUvYXBpL2Fubm90YXRpb25zLnByb3RvIoIBChhWb2lwU3lzdGVtUHJvZmlsZVJlcXVlc3QSEAoDa2V5GAEgASgJUgNrZXkSVAoRdm9pcFN5c3RlbVByb2ZpbGUYAiABKAsyJi52b2lwX3N5c3RlbV9wcm9maWxlLlZvaXBTeXN0ZW1Qcm9maWxlUhF2b2lwU3lzdGVtUHJvZmlsZSKSAQoRVm9pcFN5c3RlbVByb2ZpbGUSPAoJc2lwQ29uZmlnGAEgASgLMh4udm9pcF9zeXN0ZW1fcHJvZmlsZS5TaXBDb25maWdSCXNpcENvbmZpZxI/Cgp2b2lwQ29uZmlnGAIgASgLMh8udm9pcF9zeXN0ZW1fcHJvZmlsZS5Wb2lwQ29uZmlnUgp2b2lwQ29uZmlnIpUECgpWb2lwQ29uZmlnEkUKDGlwSG9zdENvbmZpZxgBIAEoCzIhLnZvaXBfc3lzdGVtX3Byb2ZpbGUuSXBIb3N0Q29uZmlnUgxpcEhvc3RDb25maWcSRQoMdGNwVWRwQ29uZmlnGAIgASgLMiEudm9pcF9zeXN0ZW1fcHJvZmlsZS5UY3BVZHBDb25maWdSDHRjcFVkcENvbmZpZxJFCgx2b2lwVm9pY2VDdHAYAyABKAsyIS52b2lwX3N5c3RlbV9wcm9maWxlLlZvaXBWb2ljZUN0cFIMdm9pcFZvaWNlQ3RwElEKEHZvaXBNZWRpYVByb2ZpbGUYBCABKAsyJS52b2lwX3N5c3RlbV9wcm9maWxlLlZvaXBNZWRpYVByb2ZpbGVSEHZvaXBNZWRpYVByb2ZpbGUSWgoTdm9pY2VTZXJ2aWNlUHJvZmlsZRgFIAEoCzIoLnZvaXBfc3lzdGVtX3Byb2ZpbGUuVm9pY2VTZXJ2aWNlUHJvZmlsZVITdm9pY2VTZXJ2aWNlUHJvZmlsZRI/CgpydHBQcm9maWxlGAYgASgLMh8udm9pcF9zeXN0ZW1fcHJvZmlsZS5SdHBQcm9maWxlUgpydHBQcm9maWxlEkIKC3BwdHBQb3RzVW5pGAcgASgLMiAudm9pcF9zeXN0ZW1fcHJvZmlsZS5QcHRwUG90c1VuaVILcHB0cFBvdHNVbmkikAIKDElwSG9zdENvbmZpZxIcCglpcE9wdGlvbnMYASABKA1SCWlwT3B0aW9ucxIkCg1vbnVJZGVudGlmaWVyGAIgASgJUg1vbnVJZGVudGlmaWVyEhwKCWlwQWRkcmVzcxgDIAEoCVIJaXBBZGRyZXNzEhIKBG1hc2sYBCABKAlSBG1hc2sSGAoHZ2F0ZXdheRgFIAEoCVIHZ2F0ZXdheRIeCgpwcmltYXJ5RG5zGAYgASgJUgpwcmltYXJ5RG5zEiIKDHNlY29uZGFyeURucxgHIAEoCVIMc2Vjb25kYXJ5RG5zEiwKEXJlbGF5QWdlbnRPcHRpb25zGAggASgJUhFyZWxheUFnZW50T3B0aW9ucyJGCgxUY3BVZHBDb25maWcSGgoIcHJvdG9jb2wYASABKA1SCHByb3RvY29sEhoKCHRvc0ZpZWxkGAIgASgJUgh0b3NGaWVsZCI2CgxWb2lwVm9pY2VDdHASJgoOc2lnbmFsbGluZ0NvZGUYASABKA1SDnNpZ25hbGxpbmdDb2RlIpYFChBWb2lwTWVkaWFQcm9maWxlEhgKB2ZheE1vZGUYASABKA1SB2ZheE1vZGUSKAoPY29kZWNTZWxlY3Rpb24xGAIgASgNUg9jb2RlY1NlbGVjdGlvbjESNgoWcGFja2V0UGVyaW9kU2VsZWN0aW9uMRgDIAEoDVIWcGFja2V0UGVyaW9kU2VsZWN0aW9uMRIwChNzaWxlbmNlU3VwcHJlc3Npb24xGAQgASgNUhNzaWxlbmNlU3VwcHJlc3Npb24xEigKD2NvZGVjU2VsZWN0aW9uMhgFIAEoDVIPY29kZWNTZWxlY3Rpb24yEjYKFnBhY2tldFBlcmlvZFNlbGVjdGlvbjIYBiABKA1SFnBhY2tldFBlcmlvZFNlbGVjdGlvbjISMAoTc2lsZW5jZVN1cHByZXNzaW9uMhgHIAEoDVITc2lsZW5jZVN1cHByZXNzaW9uMhIoCg9jb2RlY1NlbGVjdGlvbjMYCCABKA1SD2NvZGVjU2VsZWN0aW9uMxI2ChZwYWNrZXRQZXJpb2RTZWxlY3Rpb24zGAkgASgNUhZwYWNrZXRQZXJpb2RTZWxlY3Rpb24zEjAKE3NpbGVuY2VTdXBwcmVzc2lvbjMYCiABKA1SE3NpbGVuY2VTdXBwcmVzc2lvbjMSKAoPY29kZWNTZWxlY3Rpb240GAsgASgNUg9jb2RlY1NlbGVjdGlvbjQSNgoWcGFja2V0UGVyaW9kU2VsZWN0aW9uNBgMIAEoDVIWcGFja2V0UGVyaW9kU2VsZWN0aW9uNBIwChNzaWxlbmNlU3VwcHJlc3Npb240GA0gASgNUhNzaWxlbmNlU3VwcHJlc3Npb240EhgKB29vYkR0bWYYDiABKA1SB29vYkR0bWYi8wIKE1ZvaWNlU2VydmljZVByb2ZpbGUSKgoQYW5ub3VuY2VtZW50VHlwZRgBIAEoDVIQYW5ub3VuY2VtZW50VHlwZRIiCgxqaXR0ZXJUYXJnZXQYAiABKA1SDGppdHRlclRhcmdldBIoCg9qaXR0ZXJCdWZmZXJNYXgYAyABKA1SD2ppdHRlckJ1ZmZlck1heBIkCg1lY2hvQ2FuY2VsSW5kGAQgASgIUg1lY2hvQ2FuY2VsSW5kEjAKE3BzdG5Qcm90b2NvbFZhcmlhbnQYBSABKA1SE3BzdG5Qcm90b2NvbFZhcmlhbnQSKAoPZHRtZkRpZ2l0TGV2ZWxzGAYgASgNUg9kdG1mRGlnaXRMZXZlbHMSLAoRZHRtZkRpZ2l0RHVyYXRpb24YByABKA1SEWR0bWZEaWdpdER1cmF0aW9uEjIKFGhvb2tGbGFzaE1pbmltdW1UaW1lGAggASgNUhRob29rRmxhc2hNaW5pbXVtVGltZSL4AQoKUnRwUHJvZmlsZRIiCgxsb2NhbFBvcnRNaW4YASABKA1SDGxvY2FsUG9ydE1pbhIiCgxsb2NhbFBvcnRNYXgYAiABKA1SDGxvY2FsUG9ydE1heBIaCghkc2NwTWFyaxgDIAEoCVIIZHNjcE1hcmsSKAoPcGlnZ3lCYWNrRXZlbnRzGAQgASgNUg9waWdneUJhY2tFdmVudHMSHgoKdG9uZUV2ZW50cxgFIAEoDVIKdG9uZUV2ZW50cxIeCgpkdG1mRXZlbnRzGAYgASgNUgpkdG1mRXZlbnRzEhwKCWNhc0V2ZW50cxgHIAEoDVIJY2FzRXZlbnRzIsMCCgtQcHRwUG90c1VuaRIQCgNhcmMYASABKAlSA2FyYxIgCgthcmNJbnRlcnZhbBgCIAEoCVILYXJjSW50ZXJ2YWwSHAoJaW1wZWRhbmNlGAMgASgNUglpbXBlZGFuY2USKgoQdHJhbnNtaXNzaW9uUGF0aBgEIAEoDVIQdHJhbnNtaXNzaW9uUGF0aBIWCgZyeEdhaW4YBSABKBFSBnJ4R2FpbhIWCgZ0eEdhaW4YBiABKBFSBnR4R2FpbhIqChBwb3RzSG9sZE92ZXJUaW1lGAcgASgNUhBwb3RzSG9sZE92ZXJUaW1lEi4KEm5vbWluYWxGZWVkVm9sdGFnZRgIIAEoDVISbm9taW5hbEZlZWRWb2x0YWdlEioKEGxvc3NPZlNvZnRTd2l0Y2gYCSABKA1SEGxvc3NPZlNvZnRTd2l0Y2giywMKCVNpcENvbmZpZxJCCgtzaXBVc2VyRGF0YRgBIAEoCzIgLnZvaXBfc3lzdGVtX3Byb2ZpbGUuU2lwVXNlckRhdGFSC3NpcFVzZXJEYXRhEksKDnNpcEFnZW50Q29uZmlnGAIgASgLMiMudm9pcF9zeXN0ZW1fcHJvZmlsZS5TaXBBZ2VudENvbmZpZ1IOc2lwQWdlbnRDb25maWcSTgoPbmV0d29ya0RpYWxQbGFuGAMgASgLMiQudm9pcF9zeXN0ZW1fcHJvZmlsZS5OZXR3b3JrRGlhbFBsYW5SD25ldHdvcmtEaWFsUGxhbhJjChZ2b2lwRmVhdHVyZUFjY2Vzc0NvZGVzGAQgASgLMisudm9pcF9zeXN0ZW1fcHJvZmlsZS5Wb2lwRmVhdHVyZUFjY2Vzc0NvZGVzUhZ2b2lwRmVhdHVyZUFjY2Vzc0NvZGVzEngKHXZvaXBBcHBsaWNhdGlvblNlcnZpY2VQcm9maWxlGAUgASgLMjIudm9pcF9zeXN0ZW1fcHJvZmlsZS5Wb2lwQXBwbGljYXRpb25TZXJ2aWNlUHJvZmlsZVIddm9pcEFwcGxpY2F0aW9uU2VydmljZVByb2ZpbGUi0wIKC1NpcFVzZXJEYXRhEiAKC3VzZXJQYXJ0QW9yGAEgASgJUgt1c2VyUGFydEFvchJaChN1c2VybmFtZUFuZFBhc3N3b3JkGAIgASgLMigudm9pcF9zeXN0ZW1fcHJvZmlsZS5Vc2VybmFtZUFuZFBhc3N3b3JkUhN1c2VybmFtZUFuZFBhc3N3b3JkEjQKFXZvaWNlbWFpbFNlcnZlclNpcFVyaRgDIAEoCVIVdm9pY2VtYWlsU2VydmVyU2lwVXJpElAKI3ZvaWNlbWFpbFN1YnNjcmlwdGlvbkV4cGlyYXRpb25UaW1lGAQgASgFUiN2b2ljZW1haWxTdWJzY3JpcHRpb25FeHBpcmF0aW9uVGltZRIiCgxyZWxlYXNlVGltZXIYBSABKAVSDHJlbGVhc2VUaW1lchIaCghyb2hUaW1lchgGIAEoBVIIcm9oVGltZXIiowQKDlNpcEFnZW50Q29uZmlnEjIKFG91dGJvdW5kUHJveHlBZGRyZXNzGAEgASgJUhRvdXRib3VuZFByb3h5QWRkcmVzcxIkCg1wcmltYXJ5U2lwRG5zGAIgASgJUg1wcmltYXJ5U2lwRG5zEigKD3NlY29uZGFyeVNpcERucxgDIAEoCVIPc2Vjb25kYXJ5U2lwRG5zEiQKDXNpcFJlZ0V4cFRpbWUYBCABKAVSDXNpcFJlZ0V4cFRpbWUSNAoVc2lwUmVyZWdIZWFkU3RhcnRUaW1lGAUgASgFUhVzaXBSZXJlZ0hlYWRTdGFydFRpbWUSIgoMU2lwUmVnaXN0cmFyGAYgASgJUgxTaXBSZWdpc3RyYXISHgoKc29mdFN3aXRjaBgHIAEoCVIKc29mdFN3aXRjaBJRChBzaXBSZXNwb25zZVRhYmxlGAggASgLMiUudm9pcF9zeXN0ZW1fcHJvZmlsZS5TaXBSZXNwb25zZVRhYmxlUhBzaXBSZXNwb25zZVRhYmxlEjoKGHNpcE9wdGlvblRyYW5zbWl0Q29udHJvbBgJIAEoCFIYc2lwT3B0aW9uVHJhbnNtaXRDb250cm9sEiIKDHNpcFVyaUZvcm1hdBgKIAEoCVIMc2lwVXJpRm9ybWF0EjoKGHJlZHVuZGFudFNpcEFnZW50UG9pbnRlchgLIAEoCVIYcmVkdW5kYW50U2lwQWdlbnRQb2ludGVyIuUBCg9OZXR3b3JrRGlhbFBsYW4SMAoTY3JpdGljYWxEaWFsVGltZW91dBgBIAEoDVITY3JpdGljYWxEaWFsVGltZW91dBIuChJwYXJ0aWFsRGlhbFRpbWVvdXQYAiABKA1SEnBhcnRpYWxEaWFsVGltZW91dBImCg5kaWFsUGxhbkZvcm1hdBgDIAEoDVIOZGlhbFBsYW5Gb3JtYXQSSAoNZGlhbFBsYW5UYWJsZRgEIAEoCzIiLnZvaXBfc3lzdGVtX3Byb2ZpbGUuRGlhbFBsYW5UYWJsZVINZGlhbFBsYW5UYWJsZSJBChNVc2VybmFtZUFuZFBhc3N3b3JkEioKEHZhbGlkYXRpb25TY2hlbWUYASABKAVSEHZhbGlkYXRpb25TY2hlbWUicgoQU2lwUmVzcG9uc2VUYWJsZRIoCg9zaXBSZXNwb25zZUNvZGUYASABKAlSD3NpcFJlc3BvbnNlQ29kZRISCgR0b25lGAIgASgJUgR0b25lEiAKC3RleHRNZXNzYWdlGAMgASgJUgt0ZXh0TWVzc2FnZSKhAQoNRGlhbFBsYW5UYWJsZRIeCgpkaWFsUGxhbklkGAEgASgNUgpkaWFsUGxhbklkEhYKBmFjdGlvbhgCIAEoDVIGYWN0aW9uEiQKDWRpYWxQbGFuVG9rZW4YAyABKAlSDWRpYWxQbGFuVG9rZW4SMgoUZGlhbFBsYW5UYWJsZU1heFNpemUYBCABKA1SFGRpYWxQbGFuVGFibGVNYXhTaXplItIEChZWb2lwRmVhdHVyZUFjY2Vzc0NvZGVzEiwKEWNhbmNlbENhbGxXYWl0aW5nGAEgASgJUhFjYW5jZWxDYWxsV2FpdGluZxIaCghjYWxsSG9sZBgCIAEoCVIIY2FsbEhvbGQSGgoIY2FsbFBhcmsYAyABKAlSCGNhbGxQYXJrEioKEGNhbGxlcklkQWN0aXZhdGUYBCABKAlSEGNhbGxlcklkQWN0aXZhdGUSLgoSY2FsbGVySWREZWFjdGl2YXRlGAUgASgJUhJjYWxsZXJJZERlYWN0aXZhdGUSNgoWZG9Ob3REaXN0dXJiQWN0aXZhdGlvbhgGIAEoCVIWZG9Ob3REaXN0dXJiQWN0aXZhdGlvbhI6Chhkb05vdERpc3R1cmJEZWFjdGl2YXRpb24YByABKAlSGGRvTm90RGlzdHVyYkRlYWN0aXZhdGlvbhI0ChVkb05vdERpc3R1cmJQaW5DaGFuZ2UYCCABKAlSFWRvTm90RGlzdHVyYlBpbkNoYW5nZRI2ChZlbWVyZ2VuY3lTZXJ2aWNlTnVtYmVyGAkgASgJUhZlbWVyZ2VuY3lTZXJ2aWNlTnVtYmVyEigKD2ludGVyY29tU2VydmljZRgKIAEoCVIPaW50ZXJjb21TZXJ2aWNlEjYKFnVuYXR0ZW5kZWRDYWxsVHJhbnNmZXIYCyABKAlSFnVuYXR0ZW5kZWRDYWxsVHJhbnNmZXISMgoUYXR0ZW5kZWRDYWxsVHJhbnNmZXIYDCABKAlSFGF0dGVuZGVkQ2FsbFRyYW5zZmVyIpcECh1Wb2lwQXBwbGljYXRpb25TZXJ2aWNlUHJvZmlsZRIgCgtjaWRGZWF0dXJlcxgBIAEoDVILY2lkRmVhdHVyZXMSMAoTY2FsbFdhaXRpbmdGZWF0dXJlcxgCIAEoDVITY2FsbFdhaXRpbmdGZWF0dXJlcxJGCh5jYWxsUHJvZ3Jlc3NPclRyYW5zZmVyRmVhdHVyZXMYAyABKA1SHmNhbGxQcm9ncmVzc09yVHJhbnNmZXJGZWF0dXJlcxI6ChhjYWxsUHJlc2VudGF0aW9uRmVhdHVyZXMYBCABKA1SGGNhbGxQcmVzZW50YXRpb25GZWF0dXJlcxIyChRkaXJlY3RDb25uZWN0RmVhdHVyZRgFIAEoDVIUZGlyZWN0Q29ubmVjdEZlYXR1cmUSOAoXZGlyZWN0Q29ubmVjdFVyaVBvaW50ZXIYBiABKAlSF2RpcmVjdENvbm5lY3RVcmlQb2ludGVyEj4KGmJyaWRnZWRMaW5lQWdlbnRVcmlQb2ludGVyGAcgASgJUhpicmlkZ2VkTGluZUFnZW50VXJpUG9pbnRlchJAChtjb25mZXJlbmNlRmFjdG9yeVVyaVBvaW50ZXIYCCABKAlSG2NvbmZlcmVuY2VGYWN0b3J5VXJpUG9pbnRlchIuChJkaWFsVG9uZURlbGF5VGltZXIYCSABKA1SEmRpYWxUb25lRGVsYXlUaW1lckJmCidvcmcub3BlbmNvcmQudm9sdGhhLnZvaXBfc3lzdGVtX3Byb2ZpbGVaO2dpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby92b2lwX3N5c3RlbV9wcm9maWxlSqRMCgcSBQ4AxAEBCvEECgEMEgMOABIy5gQgQ29weXJpZ2h0IDIwMTgtMjAyNCBPcGVuIE5ldHdvcmtpbmcgRm91bmRhdGlvbiAoT05GKSBhbmQgdGhlIE9ORiBDb250cmlidXRvcnMKCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUg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cmQYAyABKAlSCHBhc3N3b3JkEhYKBmRvbWFpbhgEIAEoCVIGZG9tYWluEhQKBXByb3h5GAUgASgJUgVwcm94eRISCgRwb3J0GAYgASgNUgRwb3J0EiYKDnNpcERpc3BsYXlOYW1lGAcgASgJUg5zaXBEaXNwbGF5TmFtZRIUCgVyZWFsbRgIIAEoCVIFcmVhbG1CYgolb3JnLm9wZW5jb3JkLnZvbHRoYS52b2lwX3VzZXJfcHJvZmlsZVo5Z2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL3ZvaXBfdXNlcl9wcm9maWxlSu8LCgYSBA4AJgEK8QQKAQwSAw4AEjLmBCBDb3B5cmlnaHQgMjAxOC0yMDI0IE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uIChPTkYpIGFuZCB0aGUgT05GIENvbnRyaWJ1dG9ycwoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCggKAQgSAxAAUAoJCgIICxIDEABQCggKAQgSAxEAPgoJCgIIARIDEQA+CggKAQISAxMAGgoJCgIDABIDFAAmCjYKAgQAEgQXABsBGiogQSB1c2VyIHNwZWNpZmljIHByb2ZpbGUgZm9yIHZvaXAgc2VydmljZQoKCgoDBAABEgMXCB4KJwoEBAACABIDGQIRGhogZm9yIHRoZSBwYXRoIGluIEtWIHN0b3JlCgoNCgUEAAIABBIEGQIXIAoMCgUEAAIABRIDGQIICgwKBQQAAgABEgMZCQwKDAoFBAACAAMSAxkPEAoLCgQEAAIBEgMaAiYKDQoFBAACAQQSBBoCGREKDAoFBAACAQYSAxoCEQoMCgUEAAIBARIDGhIhCgwKBQQAAgEDEgMaJCUKCgoCBAESBB0AJgEKCgoDBAEBEgMdCBcKCwoEBAECABIDHgIiCg0KBQQBAgAEEgQeAh0ZCgwKBQQBAgAFEgMeAggKDAoFBAECAAESAx4JHQoMCgUEAQIAAxIDHiAhCgsKBAQBAgESAx8CFgoNCgUEAQIBBBIEHwIeIgoMCgUEAQIBBRIDHwIICgwKBQQBAgEBEgMfCREKDAoFBAECAQMSAx8UFQoLCgQEAQICEgMgAhYKDQoFBAECAgQSBCACHxYKDAoFBAECAgUSAyACCAoMCgUEAQICARIDIAkRCgwKBQQBAgIDEgMgFBUKCwoEBAECAxIDIQIUCg0KBQQBAgMEEgQhAiAWCgwKBQQBAgMFEgMhAggKDAoFBAECAwESAyEJDwoMCgUEAQIDAxIDIRITCgsKBAQBAgQSAyICEwoNCgUEAQIEBBIEIgIhFAoMCgUEAQIEBRIDIgIICgwKBQQBAgQBEgMiCQ4KDAoFBAECBAMSAyIREgoLCgQEAQIFEgMjAhIKDQoFBAECBQQSBCMCIhMKDAoFBAECBQUSAyMCCAoMCgUEAQIFARIDIwkNCgwKBQQBAgUDEgMjEBEKCwoEBAECBhIDJAIcCg0KBQQBAgYEEgQkAiMSCgwKBQQBAgYFEgMkAggKDAoFBAECBgESAyQJFwoMCgUEAQIGAxIDJBobCgsKBAQBAgcSAyUCEwoNCgUEAQIHBBIEJQIkHAoMCgUEAQIHBRIDJQIICgwKBQQBAgcBEgMlCQ4KDAoFBAECBwMSAyUREmIGcHJvdG8zCsEbCh92b2x0aGFfcHJvdG9zL29tY2lfbWliX2RiLnByb3RvEgRvbWNpIjwKEE1pYkF0dHJpYnV0ZURhdGESEgoEbmFtZRgBIAEoCVIEbmFtZRIUCgV2YWx1ZRgCIAEoCVIFdmFsdWUioAEKD01pYkluc3RhbmNlRGF0YRIfCgtpbnN0YW5jZV9pZBgBIAEoDVIKaW5zdGFuY2VJZBIYCgdjcmVhdGVkGAIgASgJUgdjcmVhdGVkEhoKCG1vZGlmaWVkGAMgASgJUghtb2RpZmllZBI2CgphdHRyaWJ1dGVzGAQgAygLMhYub21jaS5NaWJBdHRyaWJ1dGVEYXRhUgphdHRyaWJ1dGVzIl4KDE1pYkNsYXNzRGF0YRIZCghjbGFzc19pZBgBIAEoDVIHY2xhc3NJZBIzCglpbnN0YW5jZXMYAiADKAsyFS5vbWNpLk1pYkluc3RhbmNlRGF0YVIJaW5zdGFuY2VzIj4KDU1hbmFnZWRFbnRpdHkSGQoIY2xhc3NfaWQYASABKA1SB2NsYXNzSWQSEgoEbmFtZRgCIAEoCVIEbmFtZSIwCgtNZXNzYWdlVHlwZRIhCgxtZXNzYWdlX3R5cGUYASABKA1SC21lc3NhZ2VUeXBlItACCg1NaWJEZXZpY2VEYXRhEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSGAoHY3JlYXRlZBgCIAEoCVIHY3JlYXRlZBIkCg5sYXN0X3N5bmNfdGltZRgDIAEoCVIMbGFzdFN5bmNUaW1lEiIKDW1pYl9kYXRhX3N5bmMYBCABKA1SC21pYkRhdGFTeW5jEhgKB3ZlcnNpb24YBSABKA1SB3ZlcnNpb24SLAoHY2xhc3NlcxgGIAMoCzISLm9tY2kuTWliQ2xhc3NEYXRhUgdjbGFzc2VzEj4KEG1hbmFnZWRfZW50aXRpZXMYByADKAsyEy5vbWNpLk1hbmFnZWRFbnRpdHlSD21hbmFnZWRFbnRpdGllcxI2Cg1tZXNzYWdlX3R5cGVzGAggAygLMhEub21jaS5NZXNzYWdlVHlwZVIMbWVzc2FnZVR5cGVzIi4KEU9wZW5PbWNpRXZlbnRUeXBlIhkKBVR5cGVzEhAKDHN0YXRlX2NoYW5nZRAAIlYKDU9wZW5PbWNpRXZlbnQSMQoEdHlwZRgBIAEoDjIdLm9tY2kuT3Blbk9tY2lFdmVudFR5cGUuVHlwZXNSBHR5cGUSEgoEZGF0YRgCIAEoCVIEZGF0YUJIChhvcmcub3BlbmNvcmQudm9sdGhhLm9tY2laLGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9vbWNpSrcTCgYSBA8ASQEK3gQKAQwSAw8AEhrTBAogQ29weXJpZ2h0IDIwMTggLSBwcmVzZW50IHRoZSBvcmlnaW5hbCBhdXRob3Igb3IgYXV0aG9ycy4KCiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAoKICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCgogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCgoKCAoBCBIDEQBDCgkKAggLEgMRAEMKCAoBCBIDEgAxCgkKAggBEgMSADEKCAoBAhIDFAANCgoKAgQAEgQWABkBCgoKAwQAARIDFggYCgsKBAQAAgASAxcEGwoNCgUEAAIABBIEFwQWGgoMCgUEAAIABRIDFwQKCgwKBQQAAgABEgMXCw8KDAoFBAACAAMSAxcZGgoLCgQEAAIBEgMYBBsKDQoFBAACAQQSBBgEFxsKDAoF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CVIFdmFsdWUipAEKEUFsYXJtSW5zdGFuY2VEYXRhEh8KC2luc3RhbmNlX2lkGAEgASgNUgppbnN0YW5jZUlkEhgKB2NyZWF0ZWQYAiABKAlSB2NyZWF0ZWQSGgoIbW9kaWZpZWQYAyABKAlSCG1vZGlmaWVkEjgKCmF0dHJpYnV0ZXMYBCADKAsyGC5vbWNpLkFsYXJtQXR0cmlidXRlRGF0YVIKYXR0cmlidXRlcyJiCg5BbGFybUNsYXNzRGF0YRIZCghjbGFzc19pZBgBIAEoDVIHY2xhc3NJZBI1CglpbnN0YW5jZXMYAiADKAsyFy5vbWNpLkFsYXJtSW5zdGFuY2VEYXRhUglpbnN0YW5jZXMiQwoSQWxhcm1NYW5hZ2VkRW50aXR5EhkKCGNsYXNzX2lkGAEgASgNUgdjbGFzc0lkEhIKBG5hbWUYAiABKAlSBG5hbWUiNQoQQWxhcm1NZXNzYWdlVHlwZRIhCgxtZXNzYWdlX3R5cGUYASABKA1SC21lc3NhZ2VUeXBlIuoCCg9BbGFybURldmljZURhdGESGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIYCgdjcmVhdGVkGAIgASgJUgdjcmVhdGVkEi4KE2xhc3RfYWxhcm1fc2VxdWVuY2UYAyABKA1SEWxhc3RBbGFybVNlcXVlbmNlEiQKDmxhc3Rfc3luY190aW1lGAQgASgJUgxsYXN0U3luY1RpbWUSGAoHdmVyc2lvbhgFIAEoDVIHdmVyc2lvbhIuCgdjbGFzc2VzGAYgAygLMhQub21jaS5BbGFybUNsYXNzRGF0YVIHY2xhc3NlcxJDChBtYW5hZ2VkX2VudGl0aWVzGAcgAygLMhgub21jaS5BbGFybU1hbmFnZWRFbnRpdHlSD21hbmFnZWRFbnRpdGllcxI7Cg1tZXNzYWdlX3R5cGVzGAggAygLMhYub21jaS5BbGFybU1lc3NhZ2VUeXBlUgxtZXNzYWdlVHlwZXMiPwoWQWxhcm1PcGVuT21jaUV2ZW50VHlwZSIlChFPcGVuT21jaUV2ZW50VHlwZRIQCgxzdGF0ZV9jaGFuZ2UQACJsChJBbGFybU9wZW5PbWNpRXZlbnQSQgoEdHlwZRgBIAEoDjIuLm9tY2kuQWxhcm1PcGVuT21jaUV2ZW50VHlwZS5PcGVuT21jaUV2ZW50VHlwZVIEdHlwZRISCgRkYXRhGAIgASgJUgRkYXRhQkgKGG9yZy5vcGVuY29yZC52b2x0aGEub21jaVosZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL29tY2lKtxMKBhIEDwBLAQreBAoBDBIDDwASGtMECiBDb3B5cmlnaHQgMjAxOCAtIHByZXNlbnQgdGhlIG9yaWdpbmFsIGF1dGhvciBvciBhdXRob3JzLgoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CgogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCgoICgEIEgMRAEMKCQoCCAsSAxEAQwoICgEIEgMSADEKCQoCCAESAxIAMQoICgECEgMUAA0KCgoCBAASBBcAGgEKCgoDBAABEgMXCBoKCwoEBAACABIDGAQbCg0KBQQAAgAEEgQYBBccCgwKBQQAAgAFEgMYBAoKDAoFBAACAAESAxgLDwoMCgUEAAIAAxIDGBkaCgsKBAQAAgESAxkEGwoNCgUEAAIB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b3MvYWRhcHRlci5wcm90bxofdm9sdGhhX3Byb3Rvcy9vcGVuZmxvd18xMy5wcm90bxoadm9sdGhhX3Byb3Rvcy9ldmVudHMucHJvdG8aHnZvbHRoYV9wcm90b3MvZXh0ZW5zaW9ucy5wcm90bxondm9sdGhhX3Byb3Rvcy92b2lwX3N5c3RlbV9wcm9maWxlLnByb3RvGiV2b2x0aGFfcHJvdG9zL3ZvaXBfdXNlcl9wcm9maWxlLnByb3RvGh92b2x0aGFfcHJvdG9zL29tY2lfbWliX2RiLnByb3RvGiF2b2x0aGFfcHJvdG9zL29tY2lfYWxhcm1fZGIucHJvdG8aHXZvbHRoYV9wcm90b3Mvb21jaV90ZXN0LnByb3RvIl0KDENvcmVJbnN0YW5jZRIfCgtpbnN0YW5jZV9pZBgBIAEoCVIKaW5zdGFuY2VJZBIsCgZoZWFsdGgYAiABKAsyFC5oZWFsdGguSGVhbHRoU3RhdHVzUgZoZWFsdGgiOwoNQ29yZUluc3RhbmNlcxIqCgVpdGVtcxgBIAMoCzIULnZvbHRoYS5Db3JlSW5zdGFuY2VSBWl0ZW1zIsADCgZWb2x0aGESGAoHdmVyc2lvbhgBIAEoCVIHdmVyc2lvbhIsCghhZGFwdGVycxgCIAMoCzIQLmFkYXB0ZXIuQWRhcHRlclIIYWRhcHRlcnMSRgoPbG9naWNhbF9kZXZpY2VzGAMgAygLMh0ubG9naWNhbF9kZXZpY2UuTG9naWNhbERldmljZVIObG9naWNhbERldmljZXMSKAoHZGV2aWNlcxgEIAMoCzIOLmRldmljZS5EZXZpY2VSB2RldmljZXMSNQoMZGV2aWNlX3R5cGVzGAUgAygLMhIuZGV2aWNlLkRldmljZVR5cGVSC2RldmljZVR5cGVzEjcKDWV2ZW50X2ZpbHRlcnMYByADKAsyEi5ldmVudC5FdmVudEZpbHRlclIMZXZlbnRGaWx0ZXJzEj8KEW9tY2lfbWliX2RhdGFiYXNlGBwgAygLMhMub21jaS5NaWJEZXZpY2VEYXRhUg9vbWNpTWliRGF0YWJhc2USRQoTb21jaV9hbGFybV9kYXRhYmFzZRgdIAMoCzIVLm9tY2kuQWxhcm1EZXZpY2VEYXRhUhFvbWNpQWxhcm1EYXRhYmFzZUoECAYQBzK7OwoNVm9sdGhhU2VydmljZRJECglHZXRWb2x0aGESFi5nb29nbGUucHJvdG9idWYuRW1wdHkaDi52b2x0aGEuVm9sdGhhIg+C0+STAgkSBy9hcGkvdjESXQoRTGlzdENvcmVJbnN0YW5jZXMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaFS52b2x0aGEuQ29yZUluc3RhbmNlcyIZgtPkkwITEhEvYXBpL3YxL2luc3RhbmNlcxJTCg9HZXRDb3JlSW5zdGFuY2USCi5jb21tb24uSUQaFC52b2x0aGEuQ29yZUluc3RhbmNlIh6C0+STAhgSFi9hcGkvdjEvaW5zdGFuY2VzL3tpZH0SUwoMTGlzdEFkYXB0ZXJzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhEuYWRhcHRlci5BZGFwdGVycyIYgtPkkwISEhAvYXBpL3YxL2FkYXB0ZXJzEm0KEkxpc3RMb2dpY2FsRGV2aWNlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoeLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxEZXZpY2VzIh+C0+STAhkSFy9hcGkvdjEvbG9naWNhbF9kZXZpY2VzEmMKEEdldExvZ2ljYWxEZXZpY2USCi5jb21tb24uSUQaHS5sb2dpY2FsX2RldmljZS5Mb2dpY2FsRGV2aWNlIiSC0+STAh4SHC9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0SbgoWTGlzdExvZ2ljYWxEZXZpY2VQb3J0cxIKLmNvbW1vbi5JRBocLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxQb3J0cyIqgtPkkwIkEiIvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzEogBChRHZXRMb2dpY2FsRGV2aWNlUG9ydBIdLmxvZ2ljYWxfZGV2aWNlLkxvZ2ljYWxQb3J0SWQaGy5sb2dpY2FsX2RldmljZS5Mb2dpY2FsUG9ydCI0gtPkkwIuEiwvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzL3twb3J0X2lkfRKNAQoXRW5hYmxlTG9naWNhbERldmljZVBvcnQSHS5sb2dpY2FsX2RldmljZS5Mb2dpY2FsUG9ydElkGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IjuC0+STAjUiMy9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vcG9ydHMve3BvcnRfaWR9L2VuYWJsZRKPAQoYRGlzYWJsZUxvZ2ljYWxEZXZpY2VQb3J0Eh0ubG9naWNhbF9kZXZpY2UuTG9naWNhbFBvcnRJZBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSI8gtPkkwI2IjQvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L3BvcnRzL3twb3J0X2lkfS9kaXNhYmxlEmQKFkxpc3RMb2dpY2FsRGV2aWNlRmxvd3MSCi5jb21tb24uSUQaEi5vcGVuZmxvd18xMy5GbG93cyIqgtPkkwIkEiIvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dzEoMBChxVcGRhdGVMb2dpY2FsRGV2aWNlRmxvd1RhYmxlEhwub3BlbmZsb3dfMTMuRmxvd1RhYmxlVXBkYXRlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ii2C0+STAiciIi9hcGkvdjEvbG9naWNhbF9kZXZpY2VzL3tpZH0vZmxvd3M6ASoShAEKHVVwZGF0ZUxvZ2ljYWxEZXZpY2VNZXRlclRhYmxlEhsub3BlbmZsb3dfMTMuTWV0ZXJNb2RVcGRhdGUaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiLoLT5JMCKCIjL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9tZXRlcnM6ASoSZwoXTGlzdExvZ2ljYWxEZXZpY2VNZXRlcnMSCi5jb21tb24uSUQaEy5vcGVuZmxvd18xMy5NZXRlcnMiK4LT5JMCJRIjL2FwaS92MS9sb2dpY2FsX2RldmljZXMve2lkfS9tZXRlcnMSdAobTGlzdExvZ2ljYWxEZXZpY2VGbG93R3JvdXBzEgouY29tbW9uLklEGhcub3BlbmZsb3dfMTMuRmxvd0dyb3VwcyIwgtPkkwIqEigvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzEpMBCiFVcGRhdGVMb2dpY2FsRGV2aWNlRmxvd0dyb3VwVGFibGUSIS5vcGVuZmxvd18xMy5GbG93R3JvdXBUYWJsZVVwZGF0ZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIzgtPkkwItIigvYXBpL3YxL2xvZ2ljYWxfZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzOgEqEk8KC0xpc3REZXZpY2VzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Gg8uZGV2aWNlLkRldmljZXMiF4LT5JMCERIPL2FwaS92MS9kZXZpY2VzEk8KDUxpc3REZXZpY2VJZHMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaCy5jb21tb24uSURzIhmC0+STAhMSES9hcGkvdjEvZGV2aWNlaWRzElUKEFJlY29uY2lsZURldmljZXMSCy5jb21tb24uSURzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhyC0+STAhYiES9hcGkvdjEvZGV2aWNlaWRzOgEqEkUKCUdldERldmljZRIKLmNvbW1vbi5JRBoOLmRldmljZS5EZXZpY2UiHILT5JMCFhIUL2FwaS92MS9kZXZpY2VzL3tpZH0SSgoMQ3JlYXRlRGV2aWNlEg4uZGV2aWNlLkRldmljZRoOLmRldmljZS5EZXZpY2UiGoLT5JMCFCIPL2FwaS92MS9kZXZpY2VzOgEqElcKDEVuYWJsZURldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIjgtPkkwIdIhsvYXBpL3YxL2RldmljZXMve2lkfS9lbmFibGUSWQoNRGlzYWJsZURldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIkgtPkkwIeIhwvYXBpL3YxL2RldmljZXMve2lkfS9kaXNhYmxlElcKDFJlYm9vdERldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIjgtPkkwIdIhsvYXBpL3YxL2RldmljZXMve2lkfS9yZWJvb3QSVwoMRGVsZXRlRGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiOC0+STAh0qGy9hcGkvdjEvZGV2aWNlcy97aWR9L2RlbGV0ZRJiChFGb3JjZURlbGV0ZURldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIpgtPkkwIjKiEvYXBpL3YxL2RldmljZXMve2lkfS9mb3JjZV9kZWxldGUSeAoNRG93bmxvYWRJbWFnZRIVLmRldmljZS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiOYgCAYLT5JMCMCIrL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfToBKhKFAQoWR2V0SW1hZ2VEb3dubG9hZFN0YXR1cxIVLmRldmljZS5JbWFnZURvd25sb2FkGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiPYgCAYLT5JMCNBIyL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfS9zdGF0dXMSeAoQR2V0SW1hZ2VEb3dubG9hZBIVLmRldmljZS5JbWFnZURvd25sb2FkGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiNogCAYLT5JMCLRIrL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfRJpChJMaXN0SW1hZ2VEb3dubG9hZHMSCi5jb21tb24uSUQaFi5kZXZpY2UuSW1hZ2VEb3dubG9hZHMiL4gCAYLT5JMCJhIkL2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzEnsKE0NhbmNlbEltYWdlRG93bmxvYWQSFS5kZXZpY2UuSW1hZ2VEb3dubG9hZBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIjaIAgGC0+STAi0qKy9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0SiwEKE0FjdGl2YXRlSW1hZ2VVcGRhdGUSFS5kZXZpY2UuSW1hZ2VEb3dubG9hZBoVLmNvbW1vbi5PcGVyYXRpb25SZXNwIkaIAgGC0+STAj0iOC9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlX2Rvd25sb2Fkcy97bmFtZX0vaW1hZ2VfdXBkYXRlOgEqEokBChFSZXZlcnRJbWFnZVVwZGF0ZRIVLmRldmljZS5JbWFnZURvd25sb2FkGhUuY29tbW9uLk9wZXJhdGlvblJlc3AiRogCAYLT5JMCPSI4L2FwaS92MS9kZXZpY2VzL3tpZH0vaW1hZ2VfZG93bmxvYWRzL3tuYW1lfS9pbWFnZV9yZXZlcnQ6ASoSiAEKFURvd25sb2FkSW1hZ2VUb0RldmljZRIiLmRldmljZS5EZXZpY2VJbWFnZURvd25sb2FkUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlIi6C0+STAigSJi9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvZG93bmxvYWRfaW1hZ2VzEncKDkdldEltYWdlU3RhdHVzEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlIiyC0+STAiYSJC9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvaW1hZ2VzX3N0YXR1cxKJAQoZQWJvcnRJbWFnZVVwZ3JhZGVUb0RldmljZRIaLmRldmljZS5EZXZpY2VJbWFnZVJlcXVlc3QaGy5kZXZpY2UuRGV2aWNlSW1hZ2VSZXNwb25zZSIzgtPkkwItEisvYXBpL3YxL2RldmljZXMvaW1hZ2VzL2Fib3J0X3VwZ3JhZGVfaW1hZ2VzElYKDEdldE9udUltYWdlcxIKLmNvbW1vbi5JRBoRLmRldmljZS5PbnVJbWFnZXMiJ4LT5JMCIRIfL2FwaS92MS9kZXZpY2VzL3tpZH0vb251X2ltYWdlcxJ7Cg1BY3RpdmF0ZUltYWdlEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlIjGC0+STAisiJi9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvYWN0aXZhdGVfaW1hZ2VzOgEqEncKC0NvbW1pdEltYWdlEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlIi+C0+STAikiJC9hcGkvdjEvZGV2aWNlcy9pbWFnZXMvY29tbWl0X2ltYWdlczoBKhJQCg9MaXN0RGV2aWNlUG9ydHMSCi5jb21tb24uSUQaDS5kZXZpY2UuUG9ydHMiIoLT5JMCHBIaL2FwaS92MS9kZXZpY2VzL3tpZH0vcG9ydHMSXQoTTGlzdERldmljZVBtQ29uZmlncxIKLmNvbW1vbi5JRBoRLmRldmljZS5QbUNvbmZpZ3MiJ4LT5JMCIRIfL2FwaS92MS9kZXZpY2VzL3tpZH0vcG1fY29uZmlncxJuChVVcGRhdGVEZXZpY2VQbUNvbmZpZ3MSES5kZXZpY2UuUG1Db25maWdzGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiqC0+STAiQiHy9hcGkvdjEvZGV2aWNlcy97aWR9L3BtX2NvbmZpZ3M6ASoSVQoPTGlzdERldmljZUZsb3dzEgouY29tbW9uLklEGhIub3BlbmZsb3dfMTMuRmxvd3MiIoLT5JMCHBIaL2FwaS92MS9kZXZpY2VzL3tpZH0vZmxvd3MSZQoUTGlzdERldmljZUZsb3dHcm91cHMSCi5jb21tb24uSUQaFy5vcGVuZmxvd18xMy5GbG93R3JvdXBzIiiC0+STAiISIC9hcGkvdjEvZGV2aWNlcy97aWR9L2Zsb3dfZ3JvdXBzElwKD0xpc3REZXZpY2VUeXBlcxIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoTLmRldmljZS5EZXZpY2VUeXBlcyIcgtPkkwIWEhQvYXBpL3YxL2RldmljZV90eXBlcxJSCg1HZXREZXZpY2VUeXBlEgouY29tbW9uLklEGhIuZGV2aWNlLkRldmljZVR5cGUiIYLT5JMCGxIZL2FwaS92MS9kZXZpY2VfdHlwZXMve2lkfRJGChBTdHJlYW1QYWNrZXRzT3V0EhYub3BlbmZsb3dfMTMuUGFja2V0T3V0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IgAoARJFChBSZWNlaXZlUGFja2V0c0luEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhUub3BlbmZsb3dfMTMuUGFja2V0SW4iADABEksKE1JlY2VpdmVDaGFuZ2VFdmVudHMSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaGC5vcGVuZmxvd18xMy5DaGFuZ2VFdmVudCIAMAESXQoRQ3JlYXRlRXZlbnRGaWx0ZXISEi5ldmVudC5FdmVudEZpbHRlchoSLmV2ZW50LkV2ZW50RmlsdGVyIiCC0+STAhoiFS9hcGkvdjEvZXZlbnRfZmlsdGVyczoBKhJVCg5HZXRFdmVudEZpbHRlchIKLmNvbW1vbi5JRBoTLmV2ZW50LkV2ZW50RmlsdGVycyIigtPkkwIcEhovYXBpL3YxL2V2ZW50X2ZpbHRlcnMve2lkfRJiChFVcGRhdGVFdmVudEZpbHRlchISLmV2ZW50LkV2ZW50RmlsdGVyGhIuZXZlbnQuRXZlbnRGaWx0ZXIiJYLT5JMCHxoaL2FwaS92MS9ldmVudF9maWx0ZXJzL3tpZH06ASoSYwoRRGVsZXRlRXZlbnRGaWx0ZXISEi5ldmVudC5FdmVudEZpbHRlchoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIigtPkkwIcKhovYXBpL3YxL2V2ZW50X2ZpbHRlcnMve2lkfRJeChBMaXN0RXZlbnRGaWx0ZXJzEhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GhMuZXZlbnQuRXZlbnRGaWx0ZXJzIh2C0+STAhcSFS9hcGkvdjEvZXZlbnRfZmlsdGVycxJMCglHZXRJbWFnZXMSCi5jb21tb24uSUQaDi5kZXZpY2UuSW1hZ2VzIiOC0+STAh0SGy9hcGkvdjEvZGV2aWNlcy97aWR9L2ltYWdlcxJYCghTZWxmVGVzdBIKLmNvbW1vbi5JRBoYLmRldmljZS5TZWxmVGVzdFJlc3BvbnNlIiaC0+STAiAiHi9hcGkvdjEvZGV2aWNlcy97aWR9L3NlbGZfdGVzdBJWChBHZXRNaWJEZXZpY2VEYXRhEgouY29tbW9uLklEGhMub21jaS5NaWJEZXZpY2VEYXRhIiGC0+STAhsSGS9hcGkvdjEvb3Blbm9tY2kve2lkfS9taWISXAoSR2V0QWxhcm1EZXZpY2VEYXRhEgouY29tbW9uLklEGhUub21jaS5BbGFybURldmljZURhdGEiI4LT5JMCHRIbL2FwaS92MS9vcGVub21jaS97aWR9L2FsYXJtEnMKDVNpbXVsYXRlQWxhcm0SHC5kZXZpY2UuU2ltdWxhdGVBbGFybVJlcXVlc3QaFS5jb21tb24uT3BlcmF0aW9uUmVzcCItgtPkkwInIiIvYXBpL3YxL2RldmljZXMve2lkfS9zaW11bGF0ZV9sYXJtOgEqEk0KCkVuYWJsZVBvcnQSDC5kZXZpY2UuUG9ydBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIZgtPkkwITIg4vdjEvRW5hYmxlUG9ydDoBKhJPCgtEaXNhYmxlUG9ydBIMLmRldmljZS5Qb3J0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IhqC0+STAhQiDy92MS9EaXNhYmxlUG9ydDoBKhJeCgtHZXRFeHRWYWx1ZRIZLmV4dGVuc2lvbi5WYWx1ZVNwZWNpZmllchoXLmV4dGVuc2lvbi5SZXR1cm5WYWx1ZXMiG4LT5JMCFRITL2FwaS92MS9HZXRFeHRWYWx1ZRJXCgtTZXRFeHRWYWx1ZRITLmV4dGVuc2lvbi5WYWx1ZVNldBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIbgtPkkwIVEhMvYXBpL3YxL1NldEV4dFZhbHVlEmQKE1N0YXJ0T21jaVRlc3RBY3Rpb24SFS5vbWNpLk9tY2lUZXN0UmVxdWVzdBoSLm9tY2kuVGVzdFJlc3BvbnNlIiKC0+STAhwiFy9hcGkvdjEvc3RhcnRfb21jaV90ZXN0OgEqEoUBChRQdXRWb2lwU3lzdGVtUHJvZmlsZRItLnZvaXBfc3lzdGVtX3Byb2ZpbGUuVm9pcFN5c3RlbVByb2ZpbGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiaC0+STAiAiGy9hcGkvdjEvdm9pcF9zeXN0ZW1fcHJvZmlsZToBKhJwChdEZWxldGVWb2lwU3lzdGVtUHJvZmlsZRILLmNvbW1vbi5LZXkaFi5nb29nbGUucHJvdG9idWYuRW1wdHkiMILT5JMCKiooL2FwaS92MS92b2lwX3N5c3RlbV9wcm9maWxlL3trZXl9L2RlbGV0ZRJ9ChJQdXRWb2lwVXNlclByb2ZpbGUSKS52b2lwX3VzZXJfcHJvZmlsZS5Wb2lwVXNlclByb2ZpbGVSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiSC0+STAh4iGS9hcGkvdjEvdm9pcF91c2VyX3Byb2ZpbGU6ASoSbAoVRGVsZXRlVm9pcFVzZXJQcm9maWxlEgsuY29tbW9uLktleRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIugtPkkwIoKiYvYXBpL3YxL3ZvaXBfdXNlcl9wcm9maWxlL3trZXl9L2RlbGV0ZRJaChBEaXNhYmxlT251RGV2aWNlEgouY29tbW9uLklEGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IiKC0+STAhwiGi9hcGkvdjEvZGlzYWJsZV9vbnVfZGV2aWNlElgKD0VuYWJsZU9udURldmljZRIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIhgtPkkwIbIhkvYXBpL3YxL2VuYWJsZV9vbnVfZGV2aWNlEnwKFkRpc2FibGVPbnVTZXJpYWxOdW1iZXISHy5kZXZpY2UuT251U2VyaWFsTnVtYmVyT25PTFRQb24aFi5nb29nbGUucHJvdG9idWYuRW1wdHkiKYLT5JMCIyIhL2FwaS92MS9kaXNhYmxlX29udV9zZXJpYWxfbnVtYmVyEnoKFUVuYWJsZU9udVNlcmlhbE51bWJlchIfLmRldmljZS5PbnVTZXJpYWxOdW1iZXJPbk9MVFBvbhoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSIogtPkkwIiIiAvYXBpL3YxL2VuYWJsZV9vbnVfc2VyaWFsX251bWJlchJbCgxVcGRhdGVEZXZpY2USFC5kZXZpY2UuVXBkYXRlRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5Ih2C0+STAhciFS9hcGkvdjEvdXBkYXRlX2RldmljZUJsChNvcmcub3BlbmNvcmQudm9sdGhhQgxWb2x0aGFQcm90b3NaLmdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby92b2x0aGGqAhZPcGVuY29yZC5Wb2x0aGEuVm9sdGhhSo1uCgcSBQYAhwUBClwKAQwSAwYAEjJSCiBUb3AtbGV2ZWwgVm9sdGhhIEFQSSBkZWZpbml0aW9uCgogRm9yIGRldGFpbHMsIHNlZSBpbmRpdmlkdWFsIGRlZmluaXRpb24gZmlsZXMuCgoICgEIEgMIAEUKCQoCCAsSAwgARQoICgECEgMKAA8KCQoCAwASAwwAJgoJCgIDARIDDQAlCgkKAgMCEgMPACsKCQoCCgASAw8HDQoJCgIDAxIDEAAkCgkKAgMEEgMRACwKCQoCAwUSAxIAJAoJCgIDBhIDEwAlCgkKAgMHEgMUACkKCQoCAwgSAxUAJAoJCgIDCRIDFgAoCgkKAgMKEgMXADEKCQoCAwsSAxgALwoJCgIDDBIDGgApCgkKAgMNEgMbACsKCQoCAw4SAxwAJwoICgEIEgMeACwKCQoCCAESAx4ALAoICgEIEgMfAC0KCQoCCAgSAx8ALQoICgEIEgMgADMKCQoCCCUSAyAAMwqIAQoC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aXZhdGUgdGhlIHNwZWNpZmllZCBpbWFnZSBhdCBhIHN0YW5kYnkgcGFydGl0aW9uCiB0byBhY3RpdmUgcGFydGl0aW9uLgogRGVwZW5kaW5nIG9uIHRoZSBkZXZpY2UgaW1wbGVtZW50YXRpb24sIHRoaXMgY2FsbAogbWF5IG9yIG1heSBub3QgY2F1c2UgZGV2aWNlIHJlYm9vdC4KIElmIG5vIHJlYm9vdCwgdGhlbiBhIHJlYm9vdCBpcyByZXF1aXJlZCB0byBtYWtlIHRoZQogYWN0aXZhdGVkIGltYWdlIHJ1bm5pbmcgb24gZGV2aWNlCiBOb3RlIHRoYXQgdGhlIGNhbGwgaXMgZXhwZWN0ZWQgdG8gYmUgbm9uLWJsb2NraW5nLgogRGVwcmVjYXRlZCBpbiB2b2x0aGEgMi44LCB3aWxsIGJlIHJlbW92ZWQKCg0KBQYAAh8BEgTLAggbCg0KBQYAAh8CEgTLAhwwCg0KBQYAAh8DEgTLAjpOCg0KBQYAAh8EEgTMAgghCg4KBgYAAh8EIRIEzAIIIQoPCgUGAAIfBBIGzQII0AIKChMKCQYAAh8EsMq8IhIGzQII0AIKCoMDCgQGAAIgEgbbAgThAgUa8gIgUmV2ZXJ0IHRoZSBzcGVjaWZpZWQgaW1hZ2UgYXQgc3RhbmRieSBwYXJ0aXRpb24KIHRvIGFjdGl2ZSBwYXJ0aXRpb24sIGFuZCByZXZlcnQgdG8gcHJldmlvdXMgaW1hZ2UKIERlcGVuZGluZyBvbiB0aGUgZGV2aWNlIGltcGxlbWVudGF0aW9uLCB0aGlzIGNhbGwKIG1heSBvciBtYXkgbm90IGNhdXNlIGRldmljZSByZWJvb3QuCiBJZiBubyByZWJvb3QsIHRoZW4gYSByZWJvb3QgaXMgcmVxdWlyZWQgdG8gbWFrZSB0aGUKIHByZXZpb3VzIGltYWdlIHJ1bm5pbmcgb24gZGV2aWNlCiBOb3RlIHRoYXQgdGhlIGNhbGwgaXMgZXhwZWN0ZWQgdG8gYmUgbm9uLWJsb2NraW5nLgogRGVwcmVjYXRlZCBpbiB2b2x0aGEgMi44LCB3aWxsIGJlIHJlbW92ZWQKCg0KBQYAAiABEgTbAggZCg0KBQYAAiACEgTbAhouCg0KBQYAAiADEgTbAjhMCg0KBQYAAiAE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BgACRwQSBvsECP0ECgoTCgkGAAJHBLDKvCISBvsECP0ECgpgCgQGAAJIEgaBBQSFBQUaUCBVcGRhdGUgdGhlIERldmljZSBjb25maWd1cmF0aW9uLCBmb3Igbm93IG9ubHkgaXAgYWRkcmVzcyB1cGRhdGlvbiBpcyBzdXBwb3J0ZWQKCg0KBQYAAkgBEgSBBQgUCg0KBQYAAkgCEgSBBRUoCg0KBQYAAkgDEgSBBTJHCg8KBQYAAkgEEgaCBQiEBQoKEwoJBgACSASwyrwiEgaCBQiEBQpQAmIGcHJvdG8zCoE9CiB2b2x0aGFfcHJvdG9zL2NvcmVfYWRhcHRlci5wcm90bxIMY29yZV9hZGFwdGVyGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxoadm9sdGhhX3Byb3Rvcy92b2x0aGEucHJvdG8aH3ZvbHRoYV9wcm90b3Mvb3BlbmZsb3dfMTMucHJvdG8aG3ZvbHRoYV9wcm90b3MvYWRhcHRlci5wcm90bxoadm9sdGhhX3Byb3Rvcy9kZXZpY2UucHJvdG8aHnZvbHRoYV9wcm90b3MvZXh0ZW5zaW9ucy5wcm90bxoddm9sdGhhX3Byb3Rvcy9vbWNpX3Rlc3QucHJvdG8ibgoTQWRhcHRlclJlZ2lzdHJhdGlvbhIqCgdhZGFwdGVyGAEgASgLMhAuYWRhcHRlci5BZGFwdGVyUgdhZGFwdGVyEisKBmRUeXBlcxgCIAEoCzITLmRldmljZS5EZXZpY2VUeXBlc1IGZFR5cGVzIpIBChFDaGlsZERldmljZUZpbHRlchIbCglwYXJlbnRfaWQYASABKAlSCHBhcmVudElkEiMKDXNlcmlhbF9udW1iZXIYAiABKAlSDHNlcmlhbE51bWJlchIVCgZvbnVfaWQYAyABKA1SBW9udUlkEiQKDnBhcmVudF9wb3J0X25vGAQgASgNUgxwYXJlbnRQb3J0Tm8icQoKUG9ydEZpbHRlchIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhIKBHBvcnQYAiABKA1SBHBvcnQSMgoJcG9ydF90eXBlGAMgASgOMhUuZGV2aWNlLlBvcnQuUG9ydFR5cGVSCHBvcnRUeXBlIvgBCg9EZXZpY2VEaXNjb3ZlcnkSGwoJcGFyZW50X2lkGAEgASgJUghwYXJlbnRJZBIkCg5wYXJlbnRfcG9ydF9ubxgCIAEoDVIMcGFyZW50UG9ydE5vEioKEWNoaWxkX2RldmljZV90eXBlGAMgASgJUg9jaGlsZERldmljZVR5cGUSHQoKY2hhbm5lbF9pZBgEIAEoDVIJY2hhbm5lbElkEhsKCXZlbmRvcl9pZBgFIAEoCVIIdmVuZG9ySWQSIwoNc2VyaWFsX251bWJlchgGIAEoCVIMc2VyaWFsTnVtYmVyEhUKBm9udV9pZBgHIAEoDVIFb251SWQi0wEKEURldmljZVN0YXRlRmlsdGVyEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSKAoQcGFyZW50X2RldmljZV9pZBgCIAEoCVIOcGFyZW50RGV2aWNlSWQSOQoLb3Blcl9zdGF0dXMYAyABKA4yGC5jb21tb24uT3BlclN0YXR1cy5UeXBlc1IKb3BlclN0YXR1cxI8Cgtjb25uX3N0YXR1cxgEIAEoDjIbLmNvbW1vbi5Db25uZWN0U3RhdHVzLlR5cGVzUgpjb25uU3RhdHVzIrABCglQb3J0U3RhdGUSGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIyCglwb3J0X3R5cGUYAiABKA4yFS5kZXZpY2UuUG9ydC5Qb3J0VHlwZVIIcG9ydFR5cGUSFwoHcG9ydF9ubxgDIAEoDVIGcG9ydE5vEjkKC29wZXJfc3RhdHVzGAQgASgOMhguY29tbW9uLk9wZXJTdGF0dXMuVHlwZXNSCm9wZXJTdGF0dXMikwEKD1BvcnRTdGF0ZUZpbHRlchIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEigKEHBvcnRfdHlwZV9maWx0ZXIYAiABKA1SDnBvcnRUeXBlRmlsdGVyEjkKC29wZXJfc3RhdHVzGAQgASgOMhguY29tbW9uLk9wZXJTdGF0dXMuVHlwZXNSCm9wZXJTdGF0dXMiUwoIUGFja2V0SW4SGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBISCgRwb3J0GAIgASgNUgRwb3J0EhYKBnBhY2tldBgDIAEoDFIGcGFja2V0IoMBCglQYWNrZXRPdXQSGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIkCg5lZ3Jlc3NfcG9ydF9ubxgCIAEoDVIMZWdyZXNzUG9ydE5vEjMKBnBhY2tldBgDIAEoCzIbLm9wZW5mbG93XzEzLm9mcF9wYWNrZXRfb3V0UgZwYWNrZXQiQwoMRGV2aWNlUmVhc29uEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSFgoGcmVhc29uGAIgASgJUgZyZWFzb24izgEKCUJ1bGtGbG93cxImCgZkZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgZkZXZpY2USKAoFZmxvd3MYAiABKAsyEi5vcGVuZmxvd18xMy5GbG93c1IFZmxvd3MSLwoGZ3JvdXBzGAMgASgLMhcub3BlbmZsb3dfMTMuRmxvd0dyb3Vwc1IGZ3JvdXBzEj4KDWZsb3dfbWV0YWRhdGEYBCABKAsyGS5vcGVuZmxvd18xMy5GbG93TWV0YWRhdGFSDGZsb3dNZXRhZGF0YSLhAQoQSW5jcmVtZW50YWxGbG93cxImCgZkZXZpY2UYASABKAsyDi5kZXZpY2UuRGV2aWNlUgZkZXZpY2USLgoFZmxvd3MYAiABKAsyGC5vcGVuZmxvd18xMy5GbG93Q2hhbmdlc1IFZmxvd3MSNQoGZ3JvdXBzGAMgASgLMh0ub3BlbmZsb3dfMTMuRmxvd0dyb3VwQ2hhbmdlc1IGZ3JvdXBzEj4KDWZsb3dfbWV0YWRhdGEYBCABKAsyGS5vcGVuZmxvd18xMy5GbG93TWV0YWRhdGFSDGZsb3dNZXRhZGF0YSJeCg1QbUNvbmZpZ3NJbmZvEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSMAoKcG1fY29uZmlncxgCIAEoCzIRLmRldmljZS5QbUNvbmZpZ3NSCXBtQ29uZmlncyKIAQoQU3dpdGNoQ2FwYWJpbGl0eRIpCgRkZXNjGAEgASgLMhUub3BlbmZsb3dfMTMub2ZwX2Rlc2NSBGRlc2MSSQoPc3dpdGNoX2ZlYXR1cmVzGAIgASgLMiAub3BlbmZsb3dfMTMub2ZwX3N3aXRjaF9mZWF0dXJlc1IOc3dpdGNoRmVhdHVyZXMiawoUSW1hZ2VEb3dubG9hZE1lc3NhZ2USJgoGZGV2aWNlGAEgASgLMg4uZGV2aWNlLkRldmljZVIGZGV2aWNlEisKBWltYWdlGAIgASgLMhUuZGV2aWNlLkltYWdlRG93bmxvYWRSBWltYWdlImMKCE9NQ0lUZXN0EiYKBmRldmljZRgBIAEoCzIOLmRldmljZS5EZXZpY2VSBmRldmljZRIvCgdyZXF1ZXN0GAIgASgLMhUub21jaS5PbWNpVGVzdFJlcXVlc3RSB3JlcXVlc3QidgoUU2ltdWxhdGVBbGFybU1lc3NhZ2USJgoGZGV2aWNlGAEgASgLMg4uZGV2aWNlLkRldmljZVIGZGV2aWNlEjYKB3JlcXVlc3QYAiABKAsyHC5kZXZpY2UuU2ltdWxhdGVBbGFybVJlcXVlc3RSB3JlcXVlc3QitgEKEkdldEV4dFZhbHVlTWVzc2FnZRIzCg1wYXJlbnRfZGV2aWNlGAEgASgLMg4uZGV2aWNlLkRldmljZVIMcGFyZW50RGV2aWNlEjEKDGNoaWxkX2RldmljZRgCIAEoCzIOLmRldmljZS5EZXZpY2VSC2NoaWxkRGV2aWNlEjgKCnZhbHVlX3R5cGUYAyABKA4yGS5leHRlbnNpb24uVmFsdWVUeXBlLlR5cGVSCXZhbHVlVHlwZSJnChJTZXRFeHRWYWx1ZU1lc3NhZ2USJgoGZGV2aWNlGAEgASgLMg4uZGV2aWNlLkRldmljZVIGZGV2aWNlEikKBXZhbHVlGAMgASgLMhMuZXh0ZW5zaW9uLlZhbHVlU2V0UgV2YWx1ZUJYCiBvcmcub3BlbmNvcmQudm9sdGhhLmNvcmVfYWRhcHRlclo0Z2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL2NvcmVfYWRhcHRlckrdJAoHEgUAAIIBAQoICgEMEgMAABIKCAoBCBIDAgBLCgkKAggLEgMCAEsKCAoBCBIDAwA5CgkKAggBEgMDADkKCQoCAwASAwUAJAoJCgIDARIDBgAkCgkKAgMCEgMHACkKCQoCAwMSAwgAJQoJCgIDBBIDCQAkCgkKAgMFEgMKACgKCQoCAwYSAwsAJwoICgECEgMNABUKIwoCBAASBBEAFAEyFyBDb3JlLUFkYXB0ZXIgbWVzc2FnZXMKCgoKAwQAARIDEQgbCgsKBAQAAgASAxIEIQoNCgUEAAIABBIEEgQRHQoMCgUEAAIABhIDEgQTCgwKBQQAAgABEgMSFBsKDAoFBAACAAMSAxIfIAoLCgQE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bGUvcHJvdG9idWYvZW1wdHkucHJvdG8aGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGiB2b2x0aGFfcHJvdG9zL2NvcmVfYWRhcHRlci5wcm90bxoadm9sdGhhX3Byb3Rvcy9kZXZpY2UucHJvdG8aHnZvbHRoYV9wcm90b3MvZXh0ZW5zaW9ucy5wcm90bxoadm9sdGhhX3Byb3Rvcy9oZWFsdGgucHJvdG8aGnZvbHRoYV9wcm90b3Mvdm9sdGhhLnByb3RvGh12b2x0aGFfcHJvdG9zL29tY2lfdGVzdC5wcm90bxoadm9sdGhhX3Byb3Rvcy9ldmVudHMucHJvdG8y8hUKDkFkYXB0ZXJTZXJ2aWNlEj8KD0dldEhlYWx0aFN0YXR1cxISLmNvbW1vbi5Db25uZWN0aW9uGhQuaGVhbHRoLkhlYWx0aFN0YXR1cygBMAESNQoLQWRvcHREZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjkKD1JlY29uY2lsZURldmljZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSNgoMRGVsZXRlRGV2aWNlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI3Cg1EaXNhYmxlRGV2aWNlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI4Cg5SZUVuYWJsZURldmljZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSNgoMUmVib290RGV2aWNlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI4Cg5TZWxmVGVzdERldmljZRIOLmRldmljZS5EZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSQgoQR2V0T2ZwRGV2aWNlSW5mbxIOLmRldmljZS5EZXZpY2UaHi5jb3JlX2FkYXB0ZXIuU3dpdGNoQ2FwYWJpbGl0eRI5Cg9DaGlsZERldmljZUxvc3QSDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjIKCkVuYWJsZVBvcnQSDC5kZXZpY2UuUG9ydBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRIzCgtEaXNhYmxlUG9ydBIMLmRldmljZS5Qb3J0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkIKD1VwZGF0ZUZsb3dzQnVsaxIXLmNvcmVfYWRhcHRlci5CdWxrRmxvd3MaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSUgoYVXBkYXRlRmxvd3NJbmNyZW1lbnRhbGx5Eh4uY29yZV9hZGFwdGVyLkluY3JlbWVudGFsRmxvd3MaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSQAoNU2VuZFBhY2tldE91dBIXLmNvcmVfYWRhcHRlci5QYWNrZXRPdXQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSRQoOVXBkYXRlUG1Db25maWcSGy5jb3JlX2FkYXB0ZXIuUG1Db25maWdzSW5mbxoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJTChBEb3dubG9hZE9udUltYWdlEiIuZGV2aWNlLkRldmljZUltYWdlRG93bmxvYWRSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2USTAoRR2V0T251SW1hZ2VTdGF0dXMSGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2USTwoUQWJvcnRPbnVJbWFnZVVwZ3JhZGUSGi5kZXZpY2UuRGV2aWNlSW1hZ2VSZXF1ZXN0GhsuZGV2aWNlLkRldmljZUltYWdlUmVzcG9uc2USLQoMR2V0T251SW1hZ2VzEgouY29tbW9uLklEGhEuZGV2aWNlLk9udUltYWdlcxJLChBBY3RpdmF0ZU9udUltYWdlEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlEkkKDkNvbW1pdE9udUltYWdlEhouZGV2aWNlLkRldmljZUltYWdlUmVxdWVzdBobLmRldmljZS5EZXZpY2VJbWFnZVJlc3BvbnNlEk8KDURvd25sb2FkSW1hZ2USIi5jb3JlX2FkYXB0ZXIuSW1hZ2VEb3dubG9hZE1lc3NhZ2UaFS5kZXZpY2UuSW1hZ2VEb3dubG9hZCIDiAIBElgKFkdldEltYWdlRG93bmxvYWRTdGF0dXMSIi5jb3JlX2FkYXB0ZXIuSW1hZ2VEb3dubG9hZE1lc3NhZ2UaFS5kZXZpY2UuSW1hZ2VEb3dubG9hZCIDiAIBElUKE0NhbmNlbEltYWdlRG93bmxvYWQSIi5jb3JlX2FkYXB0ZXIuSW1hZ2VEb3dubG9hZE1lc3NhZ2UaFS5kZXZpY2UuSW1hZ2VEb3dubG9hZCIDiAIBElUKE0FjdGl2YXRlSW1hZ2VVcGRhdGUSIi5jb3JlX2FkYXB0ZXIuSW1hZ2VEb3dubG9hZE1lc3NhZ2UaFS5kZXZpY2UuSW1hZ2VEb3dubG9hZCIDiAIBElMKEVJldmVydEltYWdlVXBkYXRlEiIuY29yZV9hZGFwdGVyLkltYWdlRG93bmxvYWRNZXNzYWdlGhUuZGV2aWNlLkltYWdlRG93bmxvYWQiA4gCARI7Cg1TdGFydE9tY2lUZXN0EhYuY29yZV9hZGFwdGVyLk9NQ0lUZXN0GhIub21jaS5UZXN0UmVzcG9uc2USSgoNU2ltdWxhdGVBbGFybRIiLmNvcmVfYWRhcHRlci5TaW11bGF0ZUFsYXJtTWVzc2FnZRoVLmNvbW1vbi5PcGVyYXRpb25SZXNwEjsKDVN1cHByZXNzRXZlbnQSEi5ldmVudC5FdmVudEZpbHRlchoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI9Cg9VblN1cHByZXNzRXZlbnQSEi5ldmVudC5FdmVudEZpbHRlchoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJICgtHZXRFeHRWYWx1ZRIgLmNvcmVfYWRhcHRlci5HZXRFeHRWYWx1ZU1lc3NhZ2UaFy5leHRlbnNpb24uUmV0dXJuVmFsdWVzEkcKC1NldEV4dFZhbHVlEiAuY29yZV9hZGFwdGVyLlNldEV4dFZhbHVlTWVzc2FnZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJVCg5HZXRTaW5nbGVWYWx1ZRIgLmV4dGVuc2lvbi5TaW5nbGVHZXRWYWx1ZVJlcXVlc3QaIS5leHRlbnNpb24uU2luZ2xlR2V0VmFsdWVSZXNwb25zZRJVCg5TZXRTaW5nbGVWYWx1ZRIgLmV4dGVuc2lvbi5TaW5nbGVTZXRWYWx1ZVJlcXVlc3QaIS5leHRlbnNpb24uU2luZ2xlU2V0VmFsdWVSZXNwb25zZRI6ChBEaXNhYmxlT251RGV2aWNlEg4uZGV2aWNlLkRldmljZRoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI5Cg9FbmFibGVPbnVEZXZpY2USDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElEKFkRpc2FibGVPbnVTZXJpYWxOdW1iZXISHy5kZXZpY2UuT251U2VyaWFsTnVtYmVyT25PTFRQb24aFi5nb29nbGUucHJvdG9idWYuRW1wdHkSUAoVRW5hYmxlT251U2VyaWFsTnVtYmVyEh8uZGV2aWNlLk9udVNlcmlhbE51bWJlck9uT0xUUG9uGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjwKDFVwZGF0ZURldmljZRIULmRldmljZS5VcGRhdGVEZXZpY2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHlCdAojb3JnLm9wZW5jb3JkLnZvbHRoYS5hZGFwdGVyX3NlcnZpY2VCFFZvbHRoYUFkYXB0ZXJTZXJ2aWNlWjdnaXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vYWRhcHRlcl9zZXJ2aWNlSt4WCgYSBAAAXAEKCAoBDBIDAAASCggKAQgSAwIATgoJCgIICxIDAgBOCggKAQgSAwMAPAoJCgIIARIDAwA8CggKAQgSAwQANQoJCgIICBIDBAA1CggKAQISAwYAGAoJCgIDABIDCAAlCgkKAgMBEgMJACQKCQoCAwISAwoAKgoJCgIDAxIDCwAkCgkKAgMEEgMMACgKCQoCAwUSAw0AJAoJCgIDBhIDDgAkCgkKAgMHEgMPACcKCQoCAwgSAxAAJApVCgIGABIEEwBcARpJIEFkYXB0ZXJTZXJ2aWNlIGlzIGEgZ1JQQyBzZXJ2aWNlIHRvIHNlcnZlIHJlcXVlc3RzIGZyb20gVm9sdGhhIFJXX0NvcmUuCgoKCgMGAAESAxMIFgqRAQoEBgACABIDFgRXGoMBIEdldEhlYWx0aFN0YXR1cyBpcyB1c2VkIGJ5IGFuIEFkYXB0ZXJTZXJ2aWNlIGNsaWVudCB0byB2ZXJpZnkgY29ubmVjdGl2aXR5CiB0byB0aGUgZ1JQQyBzZXJ2ZXIgaG9zdGluZyB0aGUg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LgoKDgoHBAAEAAIEARIDFAgmCg4KBwQABAACBAISAxQpKgpGCgYEAAQAAgUSAxYIGho3IFN0YXRlIHRvIHJlcHJlc2VudCB0aGF0IHRoZSBkZXZpY2UgZGVsZXRpb24gaXMgZmFpbGVkCgoOCgcEAAQAAgUBEgMWCBUKDgoHBAAEAAIFAhIDFhgZCkEKBgQABAACBhIDGAgiGjIgU3RhdGUgdG8gcmVwcmVzZW50IHRoYXQgcmVjb25jaWxlIGlzIGluIHByb2dyZXNzCgoOCgcEAAQAAgYBEgMYCB0KDgoHBAAEAAIGAhIDGCAhCj4KBgQABAACBxIDGggfGi8gU3RhdGUgdG8gcmVwcmVzZW50IHRoYXQgcmVib290IGlzIGluIHByb2dyZXNzCgoOCgcEAAQAAgcBEgMaCBoKDgoHBAAEAAIHAhIDGh0eCgsKBAQAAgASAxwEHgoNCgUEAAIABBIEHAQbBQoMCgUEAAIABhIDHAQJCgwKBQQAAgABEgMcChkKDAoFBAACAAMSAxwcHWIGcHJvdG8zCu0cCiF2b2x0aGFfcHJvdG9zL2NvcmVfc2VydmljZXMucHJvdG8SDGNvcmVfc2VydmljZRobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvGiB2b2x0aGFfcHJvdG9zL2NvcmVfYWRhcHRlci5wcm90bxoadm9sdGhhX3Byb3Rvcy9jb21tb24ucHJvdG8aGnZvbHRoYV9wcm90b3MvZGV2aWNlLnByb3RvGhp2b2x0aGFfcHJvdG9zL2hlYWx0aC5wcm90bzL9CwoLQ29yZVNlcnZpY2USPwoPR2V0SGVhbHRoU3RhdHVzEhIuY29tbW9uLkNvbm5lY3Rpb24aFC5oZWFsdGguSGVhbHRoU3RhdHVzKAEwARJMCg9SZWdpc3RlckFkYXB0ZXISIS5jb3JlX2FkYXB0ZXIuQWRhcHRlclJlZ2lzdHJhdGlvbhoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI2CgxEZXZpY2VVcGRhdGUSDi5kZXZpY2UuRGV2aWNlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjMKC1BvcnRDcmVhdGVkEgwuZGV2aWNlLlBvcnQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSSQoQUG9ydHNTdGF0ZVVwZGF0ZRIdLmNvcmVfYWRhcHRlci5Qb3J0U3RhdGVGaWx0ZXIaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSNAoORGVsZXRlQWxsUG9ydHMSCi5jb21tb24uSUQaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSNwoNR2V0RGV2aWNlUG9ydBIYLmNvcmVfYWRhcHRlci5Qb3J0RmlsdGVyGgwuZGV2aWNlLlBvcnQSLAoPTGlzdERldmljZVBvcnRzEgouY29tbW9uLklEGg0uZGV2aWNlLlBvcnRzEkwKEURldmljZVN0YXRlVXBkYXRlEh8uY29yZV9hZGFwdGVyLkRldmljZVN0YXRlRmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkEKFERldmljZVBNQ29uZmlnVXBkYXRlEhEuZGV2aWNlLlBtQ29uZmlncxoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJEChNDaGlsZERldmljZURldGVjdGVkEh0uY29yZV9hZGFwdGVyLkRldmljZURpc2NvdmVyeRoOLmRldmljZS5EZXZpY2USNgoQQ2hpbGREZXZpY2VzTG9zdBIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRI6ChRDaGlsZERldmljZXNEZXRlY3RlZBIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRInCglHZXREZXZpY2USCi5jb21tb24uSUQaDi5kZXZpY2UuRGV2aWNlEkEKDkdldENoaWxkRGV2aWNlEh8uY29yZV9hZGFwdGVyLkNoaWxkRGV2aWNlRmlsdGVyGg4uZGV2aWNlLkRldmljZRIuCg9HZXRDaGlsZERldmljZXMSCi5jb21tb24uSUQaDy5kZXZpY2UuRGV2aWNlcxI+CgxTZW5kUGFja2V0SW4SFi5jb3JlX2FkYXB0ZXIuUGFja2V0SW4aFi5nb29nbGUucHJvdG9idWYuRW1wdHkSSAoSRGV2aWNlUmVhc29uVXBkYXRlEhouY29yZV9hZGFwdGVyLkRldmljZVJlYXNvbhoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJCCg9Qb3J0U3RhdGVVcGRhdGUSFy5jb3JlX2FkYXB0ZXIuUG9ydFN0YXRlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EjsKFVJlY29uY2lsZUNoaWxkRGV2aWNlcxIKLmNvbW1vbi5JRBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJNCh5HZXRDaGlsZERldmljZVdpdGhQcm94eUFkZHJlc3MSGy5kZXZpY2UuRGV2aWNlLlByb3h5QWRkcmVzcxoOLmRldmljZS5EZXZpY2USMwoIR2V0UG9ydHMSGC5jb3JlX2FkYXB0ZXIuUG9ydEZpbHRlchoNLmRldmljZS5Qb3J0cxJOChNDaGlsZHJlblN0YXRlVXBkYXRlEh8uY29yZV9hZGFwdGVyLkRldmljZVN0YXRlRmlsdGVyGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkQKE1VwZGF0ZUltYWdlRG93bmxvYWQSFS5kZXZpY2UuSW1hZ2VEb3dubG9hZBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eUJrCiBvcmcub3BlbmNvcmQudm9sdGhhLmNvcmVfc2VydmljZUIRVm9sdGhhQ29yZVNlcnZpY2VaNGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9jb3JlX3NlcnZpY2VKsQ4KBhIEAAAuAQoICgEMEgMAABIKCAoBCBIDAgBLCgkKAggLEgMCAEsKCAoBCBIDAwA5CgkKAggBEgMDADkKCAoBCBIDBAAyCgkKAggIEgMEADIKCAoBAhIDBgAVCgkKAgMAEgMIACUKCQoCAwESAwkAKgoJCgIDAhIDCgAkCgkKAgMDEgMLACQKCQoCAwQSAwwAJAqfAQoCBgASBBAALgEakgEgVGhlIENvcmVTZXJ2aWNlIGlzIGEgZ1JQQyBzZXJ2aWNlIGltcGxlbWVudGVkIGJ5IHRoZSBWb2x0aGEgUlctQ29yZSBmb3IgdGhlCiBzb2xlIHB1cnBvc2Ugb2Ygc2VydmluZyByZXF1ZXN0cy91cGRhdGVzIGZyb20gdGhlIFZvbHRoYSBhZGFwdGVycy4gCgoKCgMGAAESAxAIEwqJAQoEBgACABIDEwRXGnwgR2V0SGVhbHRoU3RhdHVzIGlzIHVzZWQgYnkgYSBDb3JlU2VydmljZSBjbGllbnQgdG8gdmVyaWZ5IGNvbm5lY3Rpdml0eQogdG8gdGhlIGdSUEMgc2VydmVyIGhvc3RpbmcgdGhlIENv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IkwKD0ludGVyZmFjZXNTdGF0ZRI5Cg1hbGxfaW50ZXJmYWNzGAEgAygLMhQuaWV0Zi5JbnRlcmZhY2VTdGF0ZVIMYWxsSW50ZXJmYWNzIsAECg5JbnRlcmZhY2VTdGF0ZRISCgRuYW1lGAEgASgJUgRuYW1lEhIKBHR5cGUYAiABKAlSBHR5cGUSRwoMYWRtaW5fc3RhdHVzGAMgASgOMiQuaWV0Zi5JbnRlcmZhY2VTdGF0ZS5BZG1pblN0YXR1c1R5cGVSC2FkbWluU3RhdHVzEkQKC29wZXJfc3RhdHVzGAQgASgOMiMuaWV0Zi5JbnRlcmZhY2VTdGF0ZS5PcGVyU3RhdHVzVHlwZVIKb3BlclN0YXR1cxIfCgtsYXN0X2NoYW5nZRgFIAEoCVIKbGFzdENoYW5nZRIZCghpZl9pbmRleBgGIAEoBVIHaWZJbmRleBIhCgxwaHlzX2FkZHJlc3MYByABKAlSC3BoeXNBZGRyZXNzEiYKD2hpZ2hlcl9sYXllcl9pZhgIIAMoCVINaGlnaGVyTGF5ZXJJZhIkCg5sb3dlcl9sYXllcl9pZhgJIAMoCVIMbG93ZXJMYXllcklmEhQKBXNwZWVkGAogASgEUgVzcGVlZCJCCg9BZG1pblN0YXR1c1R5cGUSDgoKQURNSU5fRE9XThAAEhEKDUFETUlOX1RFU1RJTkcQARIMCghBRE1JTl9VUBACInAKDk9wZXJTdGF0dXNUeXBlEgsKB0RPUk1BTlQQABIUChBMT1dFUl9MQVlFUl9ET1dOEAESCwoHVU5LTk9XThACEgsKB1RFU1RJTkcQAxIGCgJVUBAEEggKBERPV04QBRIPCgtOT1RfUFJFU0VOVBAGQkgKGG9yZy5vcGVuY29yZC52b2x0aGEuaWV0ZlosZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL2lldGZK0A8KBhIEAAA1AQoICgEMEgMAABIKCAoBCBIDAgBDCgkKAggLEgMCAEMKCAoBCBIDAwAxCgkKAggBEgMDADEKCAoBAhIDBQANCgoKAgQAEgQHAAkBCgoKAwQAARIDBwgSCgsKBAQAAgASAwgEKgoMCgUEAAIABBIDCAQMCgwKBQQAAgAGEgMIDRYKDAoFBAACAAESAwgXJQoMCgUEAAIAAxIDCCgpCgoK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BRIDNAQKCgwKBQQDAgkBEgM0CxAKDAoFBAMCCQMSAzQTFWIGcHJvdG8zCqegAQogdm9sdGhhX3Byb3Rvcy90ZWNoX3Byb2ZpbGUucHJvdG8SDHRlY2hfcHJvZmlsZRocZ29vZ2xlL2FwaS9hbm5vdGF0aW9ucy5wcm90byKAAgoPU2NoZWR1bGVyQ29uZmlnEjUKCWRpcmVjdGlvbhgBIAEoDjIXLnRlY2hfcHJvZmlsZS5EaXJlY3Rpb25SCWRpcmVjdGlvbhI/Cg1hZGRpdGlvbmFsX2J3GAIgASgOMhoudGVjaF9wcm9maWxlLkFkZGl0aW9uYWxCV1IMYWRkaXRpb25hbEJ3EhoKCHByaW9yaXR5GAMgASgHUghwcmlvcml0eRIWCgZ3ZWlnaHQYBCABKAdSBndlaWdodBJBCgxzY2hlZF9wb2xpY3kYBSABKA4yHi50ZWNoX3Byb2ZpbGUuU2NoZWR1bGluZ1BvbGljeVILc2NoZWRQb2xpY3kiuAEKElRyYWZmaWNTaGFwaW5nSW5mbxIQCgNjaXIYASABKAdSA2NpchIQCgNjYnMYAiABKAdSA2NicxIQCgNwaXIYAyABKAdSA3BpchIQCgNwYnMYBCABKAdSA3BicxIQCgNnaXIYBSABKAdSA2dpchJICgphZGRfYndfaW5kGAYgASgOMioudGVjaF9wcm9maWxlLkluZmVycmVkQWRkaXRpb25CV0luZGljYXRpb25SCGFkZEJ3SW5kIp0CChBUcmFmZmljU2NoZWR1bGVyEjUKCWRpcmVjdGlvbhgBIAEoDjIXLnRlY2hfcHJvZmlsZS5EaXJlY3Rpb25SCWRpcmVjdGlvbhIZCghhbGxvY19pZBgCIAEoB1IHYWxsb2NJZBI7CglzY2hlZHVsZXIYAyABKAsyHS50ZWNoX3Byb2ZpbGUuU2NoZWR1bGVyQ29uZmlnUglzY2hlZHVsZXISUgoUdHJhZmZpY19zaGFwaW5nX2luZm8YBCABKAsyIC50ZWNoX3Byb2ZpbGUuVHJhZmZpY1NoYXBpbmdJbmZvUhJ0cmFmZmljU2hhcGluZ0luZm8SJgoPdGVjaF9wcm9maWxlX2lkGAUgASgHUg10ZWNoUHJvZmlsZUlkIroBChFUcmFmZmljU2NoZWR1bGVycxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIVCgZ1bmlfaWQYBCABKAdSBXVuaUlkEhcKB3BvcnRfbm8YBSABKAdSBnBvcnRObxJFCg50cmFmZmljX3NjaGVkcxgDIAMoCzIeLnRlY2hfcHJvZmlsZS5UcmFmZmljU2NoZWR1bGVyUg10cmFmZmljU2NoZWRzIjYKFVRhaWxEcm9wRGlzY2FyZENvbmZpZxIdCgpxdWV1ZV9zaXplGAEgASgHUglxdWV1ZVNpemUihQEKEFJlZERpc2NhcmRDb25maWcSIwoNbWluX3RocmVzaG9sZBgBIAEoB1IMbWluVGhyZXNob2xkEiMKDW1heF90aHJlc2hvbGQYAiABKAdSDG1heFRocmVzaG9sZBInCg9tYXhfcHJvYmFiaWxpdHkYAyABKAdSDm1heFByb2JhYmlsaXR5IrMBChFXUmVkRGlzY2FyZENvbmZpZxI0CgVncmVlbhgBIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUgVncmVlbhI2CgZ5ZWxsb3cYAiABKAsyHi50ZWNoX3Byb2ZpbGUuUmVkRGlzY2FyZENvbmZpZ1IGeWVsbG93EjAKA3JlZBgDIAEoCzIeLnRlY2hfcHJvZmlsZS5SZWREaXNjYXJkQ29uZmlnUgNyZWQi6AIKDURpc2NhcmRDb25maWcSQgoOZGlzY2FyZF9wb2xpY3kYASABKA4yGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZFBvbGljeVINZGlzY2FyZFBvbGljeRJeChh0YWlsX2Ryb3BfZGlzY2FyZF9jb25maWcYAiABKAsyIy50ZWNoX3Byb2ZpbGUuVGFpbERyb3BEaXNjYXJkQ29uZmlnSABSFXRhaWxEcm9wRGlzY2FyZENvbmZpZxJOChJyZWRfZGlzY2FyZF9jb25maWcYAyABKAsyHi50ZWNoX3Byb2ZpbGUuUmVkRGlzY2FyZENvbmZpZ0gAUhByZWREaXNjYXJkQ29uZmlnElEKE3dyZWRfZGlzY2FyZF9jb25maWcYBCABKAsyHy50ZWNoX3Byb2ZpbGUuV1JlZERpc2NhcmRDb25maWdIAFIRd3JlZERpc2NhcmRDb25maWdCEAoOZGlzY2FyZF9jb25maWcipQMKDFRyYWZmaWNRdWV1ZRI1CglkaXJlY3Rpb24YASABKA4yFy50ZWNoX3Byb2ZpbGUuRGlyZWN0aW9uUglkaXJlY3Rpb24SHQoKZ2VtcG9ydF9pZBgCIAEoB1IJZ2VtcG9ydElkEhkKCHBiaXRfbWFwGAMgASgJUgdwYml0TWFwEiUKDmFlc19lbmNyeXB0aW9uGAQgASgIUg1hZXNFbmNyeXB0aW9uEkEKDHNjaGVkX3BvbGljeRgFIAEoDjIeLnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UgtzY2hlZFBvbGljeRIaCghwcmlvcml0eRgGIAEoB1IIcHJpb3JpdHkSFgoGd2VpZ2h0GAcgASgHUgZ3ZWlnaHQSQgoOZGlzY2FyZF9wb2xpY3kYCCABKA4yGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZFBvbGljeVINZGlzY2FyZFBvbGljeRJCCg5kaXNjYXJkX2NvbmZpZxgJIAEoCzIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkQ29uZmlnUg1kaXNjYXJkQ29uZmlnIoICCg1UcmFmZmljUXVldWVzEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhUKBnVuaV9pZBgEIAEoB1IFdW5pSWQSFwoHcG9ydF9ubxgFIAEoB1IGcG9ydE5vEkEKDnRyYWZmaWNfcXVldWVzGAYgAygLMhoudGVjaF9wcm9maWxlLlRyYWZmaWNRdWV1ZVINdHJhZmZpY1F1ZXVlcxImCg90ZWNoX3Byb2ZpbGVfaWQYByABKAdSDXRlY2hQcm9maWxlSWQSJgoPbmV0d29ya19pbnRmX2lkGAggASgHUg1uZXR3b3JrSW50ZklkImYKD0luc3RhbmNlQ29udHJvbBIQCgNvbnUYASABKAlSA29udRIQCgN1bmkYAiABKAlSA3VuaRIvChRtYXhfZ2VtX3BheWxvYWRfc2l6ZRgDIAEoCVIRbWF4R2VtUGF5bG9hZFNpemUiggIKC1FUaHJlc2hvbGRzEiEKDHFfdGhyZXNob2xkMRgBIAEoDVILcVRocmVzaG9sZDESIQoMcV90aHJlc2hvbGQyGAIgASgNUgtxVGhyZXNob2xkMhIhCgxxX3RocmVzaG9sZDMYAyABKA1SC3FUaHJlc2hvbGQzEiEKDHFfdGhyZXNob2xkNBgEIAEoDVILcVRocmVzaG9sZDQSIQoMcV90aHJlc2hvbGQ1GAUgASgNUgtxVGhyZXNob2xkNRIhCgxxX3RocmVzaG9sZDYYBiABKA1SC3FUaHJlc2hvbGQ2EiEKDHFfdGhyZXNob2xkNxgHIAEoDVILcVRocmVzaG9sZDciswUKEUdlbVBvcnRBdHRyaWJ1dGVzEh0KCmdlbXBvcnRfaWQYASABKAdSCWdlbXBvcnRJZBIcCgptYXhfcV9zaXplGAIgASgJUghtYXhRU2l6ZRIZCghwYml0X21hcBgDIAEoCVIHcGJpdE1hcBIlCg5hZXNfZW5jcnlwdGlvbhgEIAEoCVINYWVzRW5jcnlwdGlvbhJLChFzY2hlZHVsaW5nX3BvbGljeRgFIAEoDjIeLnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UhBzY2hlZHVsaW5nUG9saWN5Eh0KCnByaW9yaXR5X3EYBiABKAdSCXByaW9yaXR5URIWCgZ3ZWlnaHQYByABKAdSBndlaWdodBJCCg5kaXNjYXJkX3BvbGljeRgIIAEoDjIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5EkUKDmRpc2NhcmRfY29uZmlnGAkgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSDWRpc2NhcmRDb25maWcSRwoRZGlzY2FyZF9jb25maWdfdjIYDiABKAsyGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZENvbmZpZ1IPZGlzY2FyZENvbmZpZ1YyEiEKDGlzX211bHRpY2FzdBgKIAEoCVILaXNNdWx0aWNhc3QSKAoQbXVsdGljYXN0X2dlbV9pZBgLIAEoB1IObXVsdGljYXN0R2VtSWQSPQobZHluYW1pY19hY2Nlc3NfY29udHJvbF9saXN0GAwgASgJUhhkeW5hbWljQWNjZXNzQ29udHJvbExpc3QSOwoac3RhdGljX2FjY2Vzc19jb250cm9sX2xpc3QYDSABKAlSF3N0YXRpY0FjY2Vzc0NvbnRyb2xMaXN0IqICChNTY2hlZHVsZXJBdHRyaWJ1dGVzEjUKCWRpcmVjdGlvbhgBIAEoDjIXLnRlY2hfcHJvZmlsZS5EaXJlY3Rpb25SCWRpcmVjdGlvbhIZCghhbGxvY19pZBgCIAEoDVIHYWxsb2NJZBI/Cg1hZGRpdGlvbmFsX2J3GAMgASgOMhoudGVjaF9wcm9maWxlLkFkZGl0aW9uYWxCV1IMYWRkaXRpb25hbEJ3EhoKCHByaW9yaXR5GAQgASgHUghwcmlvcml0eRIWCgZ3ZWlnaHQYBSABKAdSBndlaWdodBJECg5xX3NjaGVkX3BvbGljeRgGIAEoDjIeLnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UgxxU2NoZWRQb2xpY3kiwAYKE0VQT05RdWV1ZUF0dHJpYnV0ZXMSHAoKbWF4X3Ffc2l6ZRgBIAEoCVIIbWF4UVNpemUSGQoIcGJpdF9tYXAYAiABKAlSB3BiaXRNYXASHQoKZ2VtcG9ydF9pZBgDIAEoDVIJZ2VtcG9ydElkEiUKDmFlc19lbmNyeXB0aW9uGAQgASgJUg1hZXNFbmNyeXB0aW9uEiEKDHRyYWZmaWNfdHlwZRgFIAEoCVILdHJhZmZpY1R5cGUSNAoWdW5zb2xpY2l0ZWRfZ3JhbnRfc2l6ZRgGIAEoDVIUdW5zb2xpY2l0ZWRHcmFudFNpemUSKQoQbm9taW5hbF9pbnRlcnZhbBgHIAEoDVIPbm9taW5hbEludGVydmFsEjIKFXRvbGVyYXRlZF9wb2xsX2ppdHRlchgIIAEoDVITdG9sZXJhdGVkUG9sbEppdHRlchI+ChtyZXF1ZXN0X3RyYW5zbWlzc2lvbl9wb2xpY3kYCSABKA1SGXJlcXVlc3RUcmFuc21pc3Npb25Qb2xpY3kSHAoKbnVtX3Ffc2V0cxgKIAEoDVIIbnVtUVNldHMSPAoMcV90aHJlc2hvbGRzGAsgASgLMhkudGVjaF9wcm9maWxlLlFUaHJlc2hvbGRzUgtxVGhyZXNob2xkcxJLChFzY2hlZHVsaW5nX3BvbGljeRgMIAEoDjIeLnRlY2hfcHJvZmlsZS5TY2hlZHVsaW5nUG9saWN5UhBzY2hlZHVsaW5nUG9saWN5Eh0KCnByaW9yaXR5X3EYDSABKA1SCXByaW9yaXR5URIWCgZ3ZWlnaHQYDiABKA1SBndlaWdodBJCCg5kaXNjYXJkX3BvbGljeRgPIAEoDjIbLnRlY2hfcHJvZmlsZS5EaXNjYXJkUG9saWN5Ug1kaXNjYXJkUG9saWN5EkUKDmRpc2NhcmRfY29uZmlnGBAgASgLMh4udGVjaF9wcm9maWxlLlJlZERpc2NhcmRDb25maWdSDWRpc2NhcmRDb25maWcSRwoRZGlzY2FyZF9jb25maWdfdjIYESABKAsyGy50ZWNoX3Byb2ZpbGUuRGlzY2FyZENvbmZpZ1IPZGlzY2FyZENvbmZpZ1YyIq4ECgtUZWNoUHJvZmlsZRISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3ZlcnNpb24YAiABKA1SB3ZlcnNpb24SIQoMcHJvZmlsZV90eXBlGAMgASgJUgtwcm9maWxlVHlwZRIiCg1udW1fZ2VtX3BvcnRzGAQgASgNUgtudW1HZW1Qb3J0cxJIChBpbnN0YW5jZV9jb250cm9sGAUgASgLMh0udGVjaF9wcm9maWxlLkluc3RhbmNlQ29udHJvbFIPaW5zdGFuY2VDb250cm9sEkQKDHVzX3NjaGVkdWxlchgGIAEoCzIhLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJBdHRyaWJ1dGVzUgt1c1NjaGVkdWxlchJECgxkc19zY2hlZHVsZXIYByABKAsyIS50ZWNoX3Byb2ZpbGUuU2NoZWR1bGVyQXR0cmlidXRlc1ILZHNTY2hlZHVsZXISZwogdXBzdHJlYW1fZ2VtX3BvcnRfYXR0cmlidXRlX2xpc3QYCCADKAsyHy50ZWNoX3Byb2ZpbGUuR2VtUG9ydEF0dHJpYnV0ZXNSHHVwc3RyZWFtR2VtUG9ydEF0dHJpYnV0ZUxpc3QSawoiZG93bnN0cmVhbV9nZW1fcG9ydF9hdHRyaWJ1dGVfbGlzdBgJIAMoCzIfLnRlY2hfcHJvZmlsZS5HZW1Qb3J0QXR0cmlidXRlc1IeZG93bnN0cmVhbUdlbVBvcnRBdHRyaWJ1dGVMaXN0IsMDCg9FcG9uVGVjaFByb2ZpbGUSEgoEbmFtZRgBIAEoCVIEbmFtZRIYCgd2ZXJzaW9uGAIgASgNUgd2ZXJzaW9uEiEKDHByb2ZpbGVfdHlwZRgDIAEoCVILcHJvZmlsZVR5cGUSIgoNbnVtX2dlbV9wb3J0cxgEIAEoDVILbnVtR2VtUG9ydHMSSAoQaW5zdGFuY2VfY29udHJvbBgFIAEoCzIdLnRlY2hfcHJvZmlsZS5JbnN0YW5jZUNvbnRyb2xSD2luc3RhbmNlQ29udHJvbBIhCgxwYWNrYWdlX3R5cGUYBiABKAlSC3BhY2thZ2VUeXBlEmQKHXVwc3RyZWFtX3F1ZXVlX2F0dHJpYnV0ZV9saXN0GAcgAygLMiEudGVjaF9wcm9maWxlLkVQT05RdWV1ZUF0dHJpYnV0ZXNSGnVwc3RyZWFtUXVldWVBdHRyaWJ1dGVMaXN0EmgKH2Rvd25zdHJlYW1fcXVldWVfYXR0cmlidXRlX2xpc3QYCCADKAsyIS50ZWNoX3Byb2ZpbGUuRVBPTlF1ZXVlQXR0cmlidXRlc1IcZG93bnN0cmVhbVF1ZXVlQXR0cmlidXRlTGlzdCLrBAoTVGVjaFByb2ZpbGVJbnN0YW5jZRISCgRuYW1lGAEgASgJUgRuYW1lEhgKB3ZlcnNpb24YAiABKA1SB3ZlcnNpb24SMwoVc3Vic2NyaWJlcl9pZGVudGlmaWVyGAMgASgJUhRzdWJzY3JpYmVySWRlbnRpZmllchIhCgxwcm9maWxlX3R5cGUYBCABKAlSC3Byb2ZpbGVUeXBlEiIKDW51bV9nZW1fcG9ydHMYBSABKA1SC251bUdlbVBvcnRzEkgKEGluc3RhbmNlX2NvbnRyb2wYBiABKAsyHS50ZWNoX3Byb2ZpbGUuSW5zdGFuY2VDb250cm9sUg9pbnN0YW5jZUNvbnRyb2wSRAoMdXNfc2NoZWR1bGVyGAcgASgLMiEudGVjaF9wcm9maWxlLlNjaGVkdWxlckF0dHJpYnV0ZXNSC3VzU2NoZWR1bGVyEkQKDGRzX3NjaGVkdWxlchgIIAEoCzIhLnRlY2hfcHJvZmlsZS5TY2hlZHVsZXJBdHRyaWJ1dGVzUgtkc1NjaGVkdWxlchJnCiB1cHN0cmVhbV9nZW1fcG9ydF9hdHRyaWJ1dGVfbGlzdBgJIAMoCzIfLnRlY2hfcHJvZmlsZS5HZW1Qb3J0QXR0cmlidXRlc1IcdXBzdHJlYW1HZW1Qb3J0QXR0cmlidXRlTGlzdBJrCiJkb3duc3RyZWFtX2dlbV9wb3J0X2F0dHJpYnV0ZV9saXN0GAogAygLMh8udGVjaF9wcm9maWxlLkdlbVBvcnRBdHRyaWJ1dGVzUh5kb3duc3RyZWFtR2VtUG9ydEF0dHJpYnV0ZUxpc3QimwQKF0Vwb25UZWNoUHJvZmlsZUluc3RhbmNlEhIKBG5hbWUYASABKAlSBG5hbWUSGAoHdmVyc2lvbhgCIAEoDVIHdmVyc2lvbhIzChVzdWJzY3JpYmVyX2lkZW50aWZpZXIYAyABKAlSFHN1YnNjcmliZXJJZGVudGlmaWVyEiEKDHByb2ZpbGVfdHlwZRgEIAEoCVILcHJvZmlsZVR5cGUSIgoNbnVtX2dlbV9wb3J0cxgFIAEoDVILbnVtR2VtUG9ydHMSGQoIYWxsb2NfaWQYBiABKA1SB2FsbG9jSWQSSAoQaW5zdGFuY2VfY29udHJvbBgHIAEoCzIdLnRlY2hfcHJvZmlsZS5JbnN0YW5jZUNvbnRyb2xSD2luc3RhbmNlQ29udHJvbBIhCgxwYWNrYWdlX3R5cGUYCCABKAlSC3BhY2thZ2VUeXBlEmQKHXVwc3RyZWFtX3F1ZXVlX2F0dHJpYnV0ZV9saXN0GAkgAygLMiEudGVjaF9wcm9maWxlLkVQT05RdWV1ZUF0dHJpYnV0ZXNSGnVwc3RyZWFtUXVldWVBdHRyaWJ1dGVMaXN0EmgKH2Rvd25zdHJlYW1fcXVldWVfYXR0cmlidXRlX2xpc3QYCiADKAsyIS50ZWNoX3Byb2ZpbGUuRVBPTlF1ZXVlQXR0cmlidXRlc1IcZG93bnN0cmVhbVF1ZXVlQXR0cmlidXRlTGlzdCK7AQoQUmVzb3VyY2VJbnN0YW5jZRITCgV0cF9pZBgBIAEoDVIEdHBJZBIhCgxwcm9maWxlX3R5cGUYAiABKAlSC3Byb2ZpbGVUeXBlEjMKFXN1YnNjcmliZXJfaWRlbnRpZmllchgDIAEoCVIUc3Vic2NyaWJlcklkZW50aWZpZXISGQoIYWxsb2NfaWQYBCABKA1SB2FsbG9jSWQSHwoLZ2VtcG9ydF9pZHMYBSADKA1SCmdlbXBvcnRJZHMqPAoJRGlyZWN0aW9uEgwKCFVQU1RSRUFNEAASDgoKRE9XTlNUUkVBTRABEhEKDUJJRElSRUNUSU9OQUwQAio7ChBTY2hlZHVsaW5nUG9saWN5EgcKA1dSUhAAEhIKDlN0cmljdFByaW9yaXR5EAESCgoGSHlicmlkEAIqbgoMQWRkaXRpb25hbEJXEhUKEUFkZGl0aW9uYWxCV19Ob25lEAASEwoPQWRkaXRpb25hbEJXX05BEAESGwoXQWRkaXRpb25hbEJXX0Jlc3RFZmZvcnQQAhIVChFBZGRpdGlvbmFsQldfQXV0bxADKj8KDURpc2NhcmRQb2xpY3kSDAoIVGFpbERyb3AQABINCglXVGFpbERyb3AQARIHCgNSZWQQAhIICgRXUmVkEAMqnAEKHEluZmVycmVkQWRkaXRpb25CV0luZGljYXRpb24SJQohSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9Ob25lEAASKAokSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9Bc3N1cmVkEAESKwonSW5mZXJyZWRBZGRpdGlvbkJXSW5kaWNhdGlvbl9CZXN0RWZmb3J0EAJCWAogb3JnLm9wZW5jb3JkLnZvbHRoYS50ZWNoX3Byb2ZpbGVaNGdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby90ZWNoX3Byb2ZpbGVKtGUKBxIFDgCAAgEK8QQKAQwSAw4AEjLmBCBDb3B5cmlnaHQgMjAxOC0yMDI0IE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uIChPTkYpIGFuZCB0aGUgT05GIENvbnRyaWJ1dG9ycwoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNz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b3RvGh52b2x0aGFfcHJvdG9zL2V4dGVuc2lvbnMucHJvdG8aGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvIuAFCgpJbmRpY2F0aW9uEjEKB29sdF9pbmQYASABKAsyFi5vcGVub2x0Lk9sdEluZGljYXRpb25IAFIGb2x0SW5kEjQKCGludGZfaW5kGAIgASgLMhcub3Blbm9sdC5JbnRmSW5kaWNhdGlvbkgAUgdpbnRmSW5kEkEKDWludGZfb3Blcl9pbmQYAyABKAsyGy5vcGVub2x0LkludGZPcGVySW5kaWNhdGlvbkgAUgtpbnRmT3BlckluZBI+CgxvbnVfZGlzY19pbmQYBCABKAsyGi5vcGVub2x0Lk9udURpc2NJbmRpY2F0aW9uSABSCm9udURpc2NJbmQSMQoHb251X2luZBgFIAEoCzIWLm9wZW5vbHQuT251SW5kaWNhdGlvbkgAUgZvbnVJbmQSNAoIb21jaV9pbmQYBiABKAsyFy5vcGVub2x0Lk9tY2lJbmRpY2F0aW9uSABSB29tY2lJbmQSNAoHcGt0X2luZBgHIAEoCzIZLm9wZW5vbHQuUGFja2V0SW5kaWNhdGlvbkgAUgZwa3RJbmQSNwoKcG9ydF9zdGF0cxgIIAEoCzIWLmNvbW1vbi5Qb3J0U3RhdGlzdGljc0gAUglwb3J0U3RhdHMSOAoKZmxvd19zdGF0cxgJIAEoCzIXLm9wZW5vbHQuRmxvd1N0YXRpc3RpY3NIAFIJZmxvd1N0YXRzEjcKCWFsYXJtX2luZBgKIAEoCzIYLm9wZW5vbHQuQWxhcm1JbmRpY2F0aW9uSABSCGFsYXJtSW5kEkoKEG9udV9kaXNhYmxlZF9pbmQYCyABKAsyHi5vcGVub2x0Lk9udURpc2FibGVkSW5kaWNhdGlvbkgAUg5vbnVEaXNhYmxlZEluZBJHCg9vbnVfZW5hYmxlZF9pbmQYDCABKAsyHS5vcGVub2x0Lk9udUVuYWJsZWRJbmRpY2F0aW9uSABSDW9udUVuYWJsZWRJbmRCBgoEZGF0YSLrDQoPQWxhcm1JbmRpY2F0aW9uEjEKB2xvc19pbmQYASABKAsyFi5vcGVub2x0Lkxvc0luZGljYXRpb25IAFIGbG9zSW5kEkQKDmR5aW5nX2dhc3BfaW5kGAIgASgLMhwub3Blbm9sdC5EeWluZ0dhc3BJbmRpY2F0aW9uSABSDGR5aW5nR2FzcEluZBJBCg1vbnVfYWxhcm1faW5kGAMgASgLMhsub3Blbm9sdC5PbnVBbGFybUluZGljYXRpb25IAFILb251QWxhcm1JbmQSVwoUb251X3N0YXJ0dXBfZmFpbF9pbmQYBCABKAsyJC5vcGVub2x0Lk9udVN0YXJ0dXBGYWlsdXJlSW5kaWNhdGlvbkgAUhFvbnVTdGFydHVwRmFpbEluZBJaChZvbnVfc2lnbmFsX2RlZ3JhZGVfaW5kGAUgASgLMiMub3Blbm9sdC5PbnVTaWduYWxEZWdyYWRlSW5kaWNhdGlvbkgAUhNvbnVTaWduYWxEZWdyYWRlSW5kElsKF29udV9kcmlmdF9vZl93aW5kb3dfaW5kGAYgASgLMiMub3Blbm9sdC5PbnVEcmlmdE9mV2luZG93SW5kaWNhdGlvbkgAUhNvbnVEcmlmdE9mV2luZG93SW5kElQKEW9udV9sb3NzX29tY2lfaW5kGAcgASgLMicub3Blbm9sdC5PbnVMb3NzT2ZPbWNpQ2hhbm5lbEluZGljYXRpb25IAFIOb251TG9zc09tY2lJbmQSVwoUb251X3NpZ25hbHNfZmFpbF9pbmQYCCABKAsyJC5vcGVub2x0Lk9udVNpZ25hbHNGYWlsdXJlSW5kaWNhdGlvbkgAUhFvbnVTaWduYWxzRmFpbEluZBJPCgxvbnVfdGl3aV9pbmQYCSABKAsyKy5vcGVub2x0Lk9udVRyYW5zbWlzc2lvbkludGVyZmVyZW5jZVdhcm5pbmdIAFIKb251VGl3aUluZBJgChdvbnVfYWN0aXZhdGlvbl9mYWlsX2luZBgKIAEoCzInLm9wZW5vbHQuT251QWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uSABSFG9udUFjdGl2YXRpb25GYWlsSW5kEmAKGG9udV9wcm9jZXNzaW5nX2Vycm9yX2luZBgLIAEoCzIlLm9wZW5vbHQuT251UHJvY2Vzc2luZ0Vycm9ySW5kaWNhdGlvbkgAUhVvbnVQcm9jZXNzaW5nRXJyb3JJbmQSZQoZb251X2xvc3Nfb2Zfc3luY19mYWlsX2luZBgMIAEoCzIqLm9wZW5vbHQuT251TG9zc09mS2V5U3luY0ZhaWx1cmVJbmRpY2F0aW9uSABSFG9udUxvc3NPZlN5bmNGYWlsSW5kElUKFW9udV9pdHVfcG9uX3N0YXRzX2luZBgNIAEoCzIhLm9wZW5vbHQuT251SXR1UG9uU3RhdHNJbmRpY2F0aW9uSABSEW9udUl0dVBvblN0YXRzSW5kEmwKHG9udV9kZWFjdGl2YXRpb25fZmFpbHVyZV9pbmQYDiABKAsyKS5vcGVub2x0Lk9udURlYWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uSABSGW9udURlYWN0aXZhdGlvbkZhaWx1cmVJbmQSVwoVb251X3JlbW90ZV9kZWZlY3RfaW5kGA8gASgLMiIub3Blbm9sdC5PbnVSZW1vdGVEZWZlY3RJbmRpY2F0aW9uSABSEm9udVJlbW90ZURlZmVjdEluZBJzChxvbnVfbG9zc19nZW1fZGVsaW5lYXRpb25faW5kGBAgASgLMjEub3Blbm9sdC5PbnVMb3NzT2ZHRU1DaGFubmVsRGVsaW5lYXRpb25JbmRpY2F0aW9uSABSGG9udUxvc3NHZW1EZWxpbmVhdGlvbkluZBJ2CiBvbnVfcGh5c2ljYWxfZXF1aXBtZW50X2Vycm9yX2luZBgRIAEoCzIsLm9wZW5vbHQuT251UGh5c2ljYWxFcXVpcG1lbnRFcnJvckluZGljYXRpb25IAFIcb251UGh5c2ljYWxFcXVpcG1lbnRFcnJvckluZBJbChNvbnVfbG9zc19vZl9hY2tfaW5kGBIgASgLMisub3Blbm9sdC5PbnVMb3NzT2ZBY2tub3dsZWRnZW1lbnRJbmRpY2F0aW9uSABSD29udUxvc3NPZkFja0luZBJvChtvbnVfZGlmZl9yZWFjaF9leGNlZWRlZF9pbmQYEyABKAsyLy5vcGVub2x0Lk9udURpZmZlcmVudGlhbFJlYWNoRXhjZWVkZWRJbmRpY2F0aW9uSABSF29udURpZmZSZWFjaEV4Y2VlZGVkSW5kQgYKBGRhdGEiLgoNT2x0SW5kaWNhdGlvbhIdCgpvcGVyX3N0YXRlGAEgASgJUglvcGVyU3RhdGUiSAoOSW50ZkluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEh0KCm9wZXJfc3RhdGUYAiABKAlSCW9wZXJTdGF0ZSJoChFPbnVEaXNjSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSOgoNc2VyaWFsX251bWJlchgCIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUgxzZXJpYWxOdW1iZXIikwQKDU9udUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSHQoKb3Blcl9zdGF0ZRgDIAEoCVIJb3BlclN0YXRlEh8KC2FkbWluX3N0YXRlGAUgASgJUgphZG1pblN0YXRlEjoKDXNlcmlhbF9udW1iZXIYBCABKAsyFS5vcGVub2x0LlNlcmlhbE51bWJlclIMc2VyaWFsTnVtYmVyEkwKC2ZhaWxfcmVhc29uGAYgASgOMisub3Blbm9sdC5PbnVJbmRpY2F0aW9uLkFjdGl2YXRpb25GYWlsUmVhc29uUgpmYWlsUmVhc29uIocCChRBY3RpdmF0aW9uRmFpbFJlYXNvbhIjCh9PTlVfQUNUSVZBVElPTl9GQUlMX1JFQVNPTl9OT05FEAASJgoiT05VX0FDVElWQVRJT05fRkFJTF9SRUFTT05fUkFOR0lORxABEjYKMk9OVV9BQ1RJVkFUSU9OX0ZBSUxfUkVBU09OX1BBU1NXT1JEX0FVVEhFTlRJQ0FUSU9OEAISIgoeT05VX0FDVElWQVRJT05fRkFJTF9SRUFTT05fTE9TEAMSIQodT05VX0FDVElWQVRJT05fRkFJTF9PTlVfQUxBUk0QBBIjCh9PTlVfQUNUSVZBVElPTl9GQUlMX1NXSVRDSF9PVkVSEAUigwEKFU9udURpc2FibGVkSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBI6Cg1zZXJpYWxfbnVtYmVyGAQgASgLMhUub3Blbm9sdC5TZXJpYWxOdW1iZXJSDHNlcmlhbE51bWJlciKCAQoUT251RW5hYmxlZEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSOgoNc2VyaWFsX251bWJlchgEIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUgxzZXJpYWxOdW1iZXIiggQKEkludGZPcGVySW5kaWNhdGlvbhISCgR0eXBlGAEgASgJUgR0eXBlEhcKB2ludGZfaWQYAiABKAdSBmludGZJZBIdCgpvcGVyX3N0YXRlGAMgASgJUglvcGVyU3RhdGUSFAoFc3BlZWQYBCABKAdSBXNwZWVkEh4KCnRlY2hub2xvZ3kYBSABKAlSCnRlY2hub2xvZ3kSRQoGcmFuZ2VzGAYgASgLMi0ub3Blbm9sdC5JbnRmT3BlckluZGljYXRpb24uUE9OUmVzb3VyY2VSYW5nZXNSBnJhbmdlcxqiAgoRUE9OUmVzb3VyY2VSYW5nZXMSSAoFcG9vbHMYAyADKAsyMi5vcGVub2x0LkludGZPcGVySW5kaWNhdGlvbi5QT05SZXNvdXJjZVJhbmdlcy5Qb29sUgVwb29scxrCAQoEUG9vbBJPCgR0eXBlGAEgASgOMjsub3Blbm9sdC5JbnRmT3BlckluZGljYXRpb24uUE9OUmVzb3VyY2VSYW5nZXMuUG9vbC5Qb29sVHlwZVIEdHlwZRIUCgVzdGFydBgDIAEoB1IFc3RhcnQSEAoDZW5kGAQgASgHUgNlbmQiQQoIUG9vbFR5cGUSCgoGT05VX0lEEAASDAoIQUxMT0NfSUQQARIOCgpHRU1QT1JUX0lEEAISCwoHRkxPV19JRBADIlIKDk9tY2lJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhAKA3BrdBgDIAEoDFIDcGt0IvEBChBQYWNrZXRJbmRpY2F0aW9uEhsKCWludGZfdHlwZRgFIAEoCVIIaW50ZlR5cGUSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgIIAEoB1IFb251SWQSFQoGdW5pX2lkGAkgASgHUgV1bmlJZBIdCgpnZW1wb3J0X2lkGAIgASgHUglnZW1wb3J0SWQSFwoHZmxvd19pZBgDIAEoB1IGZmxvd0lkEhcKB3BvcnRfbm8YBiABKAdSBnBvcnRObxIWCgZjb29raWUYByABKAZSBmNvb2tpZRIQCgNwa3QYBCABKAxSA3BrdCJBCglJbnRlcmZhY2USFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhsKCWludGZfdHlwZRgCIAEoB1IIaW50ZlR5cGUiPAoJSGVhcnRiZWF0Ei8KE2hlYXJ0YmVhdF9zaWduYXR1cmUYASABKAdSEmhlYXJ0YmVhdFNpZ25hdHVyZSKsAQoDT251EhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEjoKDXNlcmlhbF9udW1iZXIYAyABKAsyFS5vcGVub2x0LlNlcmlhbE51bWJlclIMc2VyaWFsTnVtYmVyEhAKA3BpchgEIAEoB1IDcGlyEicKD29tY2NfZW5jcnlwdGlvbhgFIAEoCFIOb21jY0VuY3J5cHRpb24isQEKEk9udUxvZ2ljYWxEaXN0YW5jZRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBI5Chlsb2dpY2FsX29udV9kaXN0YW5jZV96ZXJvGAMgASgHUhZsb2dpY2FsT251RGlzdGFuY2VaZXJvEjAKFGxvZ2ljYWxfb251X2Rpc3RhbmNlGAQgASgHUhJsb2dpY2FsT251RGlzdGFuY2UiSwoHT21jaU1zZxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIQCgNwa3QYAyABKAxSA3BrdCKgAQoJT251UGFja2V0EhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhcKB3BvcnRfbm8YBCABKAdSBnBvcnRObxIdCgpnZW1wb3J0X2lkGAUgASgHUglnZW1wb3J0SWQSGQoIYWxsb2NfaWQYBiABKAdSB2FsbG9jSWQSEAoDcGt0GAMgASgMUgNwa3QiOQoMVXBsaW5rUGFja2V0EhcKB2ludGZfaWQYASABKAdSBmludGZJZBIQCgNwa3QYAiABKAxSA3BrdCK4BwoKRGV2aWNlSW5mbxIWCgZ2ZW5kb3IYASABKAlSBnZlbmRvchIUCgVtb2RlbBgCIAEoCVIFbW9kZWwSKQoQaGFyZHdhcmVfdmVyc2lvbhgDIAEoCVIPaGFyZHdhcmVWZXJzaW9uEikKEGZpcm13YXJlX3ZlcnNpb24YBCABKAlSD2Zpcm13YXJlVmVyc2lvbhIbCglkZXZpY2VfaWQYECABKAlSCGRldmljZUlkEjAKFGRldmljZV9zZXJpYWxfbnVtYmVyGBEgASgJUhJkZXZpY2VTZXJpYWxOdW1iZXISMQoUcHJldmlvdXNseV9jb25uZWN0ZWQYEyABKAhSE3ByZXZpb3VzbHlDb25uZWN0ZWQSGwoJcG9uX3BvcnRzGAwgASgHUghwb25Qb3J0cxIbCglubmlfcG9ydHMYFCABKAdSCG5uaVBvcnRzEkAKBnJhbmdlcxgPIAMoCzIoLm9wZW5vbHQuRGV2aWNlSW5mby5EZXZpY2VSZXNvdXJjZVJhbmdlc1IGcmFuZ2VzGpUEChREZXZpY2VSZXNvdXJjZVJhbmdlcxIZCghpbnRmX2lkcxgBIAMoB1IHaW50ZklkcxIeCgp0ZWNobm9sb2d5GAIgASgJUgp0ZWNobm9sb2d5EkMKBXBvb2xzGAMgAygLMi0ub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzLlBvb2xSBXBvb2xzGvwCCgRQb29sEkoKBHR5cGUYASABKA4yNi5vcGVub2x0LkRldmljZUluZm8uRGV2aWNlUmVzb3VyY2VSYW5nZXMuUG9vbC5Qb29sVHlwZVIEdHlwZRJTCgdzaGFyaW5nGAIgASgOMjkub3Blbm9sdC5EZXZpY2VJbmZvLkRldmljZVJlc291cmNlUmFuZ2VzLlBvb2wuU2hhcmluZ1R5cGVSB3NoYXJpbmcSFAoFc3RhcnQYAyABKAdSBXN0YXJ0EhAKA2VuZBgEIAEoB1IDZW5kIkEKCFBvb2xUeXBlEgoKBk9OVV9JRBAAEgwKCEFMTE9DX0lEEAESDgoKR0VNUE9SVF9JRBACEgsKB0ZMT1dfSUQQAyJoCgtTaGFyaW5nVHlwZRIWChJERURJQ0FURURfUEVSX0lOVEYQABIfChtTSEFSRURfQllfQUxMX0lOVEZfQUxMX1RFQ0gQARIgChxTSEFSRURfQllfQUxMX0lOVEZfU0FNRV9URUNIEAJKBAgFEAxKBAgNEA5KBAgOEA8ihAMKCkNsYXNzaWZpZXISFQoGb190cGlkGAEgASgHUgVvVHBpZBITCgVvX3ZpZBgCIAEoB1IEb1ZpZBIVCgZpX3RwaWQYAyABKAdSBWlUcGlkEhMKBWlfdmlkGAQgASgHUgRpVmlkEhcKB29fcGJpdHMYBSABKAdSBm9QYml0cxIXCgdpX3BiaXRzGAYgASgHUgZpUGJpdHMSGQoIZXRoX3R5cGUYByABKAdSB2V0aFR5cGUSFwoHZHN0X21hYxgIIAEoDFIGZHN0TWFjEhcKB3NyY19tYWMYCSABKAxSBnNyY01hYxIZCghpcF9wcm90bxgKIAEoB1IHaXBQcm90bxIVCgZkc3RfaXAYCyABKAdSBWRzdElwEhUKBnNyY19pcBgMIAEoB1IFc3JjSXASGQoIc3JjX3BvcnQYDSABKAdSB3NyY1BvcnQSGQoIZHN0X3BvcnQYDiABKAdSB2RzdFBvcnQSIAoMcGt0X3RhZ190eXBlGA8gASgJUgpwa3RUYWdUeXBlIoUDCglBY3Rpb25DbWQSIgoNYWRkX291dGVyX3RhZxgBIAEoCFILYWRkT3V0ZXJUYWcSKAoQcmVtb3ZlX291dGVyX3RhZxgCIAEoCFIOcmVtb3ZlT3V0ZXJUYWcSIAoMdHJhcF90b19ob3N0GAMgASgIUgp0cmFwVG9Ib3N0EiwKEnJlbWFya19vdXRlcl9wYml0cxgEIAEoCFIQcmVtYXJrT3V0ZXJQYml0cxIsChJyZW1hcmtfaW5uZXJfcGJpdHMYBSABKAhSEHJlbWFya0lubmVyUGJpdHMSIgoNYWRkX2lubmVyX3RhZxgGIAEoCFILYWRkSW5uZXJUYWcSKAoQcmVtb3ZlX2lubmVyX3RhZxgHIAEoCFIOcmVtb3ZlSW5uZXJUYWcSLgoTdHJhbnNsYXRlX2lubmVyX3RhZxgIIAEoCFIRdHJhbnNsYXRlSW5uZXJUYWcSLgoTdHJhbnNsYXRlX291dGVyX3RhZxgJIAEoCFIRdHJhbnNsYXRlT3V0ZXJUYWciuAEKBkFjdGlvbhIkCgNjbWQYASABKAsyEi5vcGVub2x0LkFjdGlvbkNtZFIDY21kEhMKBW9fdmlkGAIgASgHUgRvVmlkEhcKB29fcGJpdHMYAyABKAdSBm9QYml0cxIVCgZvX3RwaWQYBCABKAdSBW9UcGlkEhMKBWlfdmlkGAUgASgHUgRpVmlkEhcKB2lfcGJpdHMYBiABKAdSBmlQYml0cxIVCgZpX3RwaWQYByABKAdSBWlUcGlkIscGCgRGbG93EiQKDmFjY2Vzc19pbnRmX2lkGAEgASgPUgxhY2Nlc3NJbnRmSWQSFQoGb251X2lkGAIgASgPUgVvbnVJZBIVCgZ1bmlfaWQYCyABKA9SBXVuaUlkEhcKB2Zsb3dfaWQYAyABKAZSBmZsb3dJZBIqChFzeW1tZXRyaWNfZmxvd19pZBgSIAEoBlIPc3ltbWV0cmljRmxvd0lkEhsKCWZsb3dfdHlwZRgEIAEoCVIIZmxvd1R5cGUSGQoIYWxsb2NfaWQYCiABKA9SB2FsbG9jSWQSJgoPbmV0d29ya19pbnRmX2lkGAUgASgPUg1uZXR3b3JrSW50ZklkEh0KCmdlbXBvcnRfaWQYBiABKA9SCWdlbXBvcnRJZBIzCgpjbGFzc2lmaWVyGAcgASgLMhMub3Blbm9sdC5DbGFzc2lmaWVyUgpjbGFzc2lmaWVyEicKBmFjdGlvbhgIIAEoCzIPLm9wZW5vbHQuQWN0aW9uUgZhY3Rpb24SGgoIcHJpb3JpdHkYCSABKA9SCHByaW9yaXR5EhYKBmNvb2tpZRgMIAEoBlIGY29va2llEhcKB3BvcnRfbm8YDSABKAdSBnBvcnRObxIZCghncm91cF9pZBgOIAEoB1IHZ3JvdXBJZBImCg90ZWNoX3Byb2ZpbGVfaWQYDyABKAdSDXRlY2hQcm9maWxlSWQSJQoOcmVwbGljYXRlX2Zsb3cYECABKAhSDXJlcGxpY2F0ZUZsb3cSSAoPcGJpdF90b19nZW1wb3J0GBEgAygLMiAub3Blbm9sdC5GbG93LlBiaXRUb0dlbXBvcnRFbnRyeVINcGJpdFRvR2VtcG9ydBJFCg5nZW1wb3J0X3RvX2FlcxgTIAMoCzIfLm9wZW5vbHQuRmxvdy5HZW1wb3J0VG9BZXNFbnRyeVIMZ2VtcG9ydFRvQWVzGkAKElBiaXRUb0dlbXBvcnRFbnRyeRIQCgNrZXkYASABKAdSA2tleRIUCgV2YWx1ZRgCIAEoB1IFdmFsdWU6AjgBGj8KEUdlbXBvcnRUb0Flc0VudHJ5EhAKA2tleRgBIAEoB1IDa2V5EhQKBXZhbHVlGAIgASgIUgV2YWx1ZToCOAEiVAoMU2VyaWFsTnVtYmVyEhsKCXZlbmRvcl9pZBgBIAEoDFIIdmVuZG9ySWQSJwoPdmVuZG9yX3NwZWNpZmljGAIgASgMUg52ZW5kb3JTcGVjaWZpYyLmBwoNT251U3RhdGlzdGljcxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIlCg5wb3NpdGl2ZV9kcmlmdBgDIAEoBlINcG9zaXRpdmVEcmlmdBIlCg5uZWdhdGl2ZV9kcmlmdBgEIAEoBlINbmVnYXRpdmVEcmlmdBI4ChhkZWxpbWl0ZXJfbWlzc19kZXRlY3Rpb24YBSABKAZSFmRlbGltaXRlck1pc3NEZXRlY3Rpb24SHQoKYmlwX2Vycm9ycxgGIAEoBlIJYmlwRXJyb3JzEhsKCWJpcF91bml0cxgHIAEoBlIIYmlwVW5pdHMSMgoVZmVjX2NvcnJlY3RlZF9zeW1ib2xzGAggASgGUhNmZWNDb3JyZWN0ZWRTeW1ib2xzEjYKF2ZlY19jb2Rld29yZHNfY29ycmVjdGVkGAkgASgGUhVmZWNDb2Rld29yZHNDb3JyZWN0ZWQSPgobZmVjX2NvZGV3b3Jkc191bmNvcnJlY3RhYmxlGAogASgGUhlmZWNDb2Rld29yZHNVbmNvcnJlY3RhYmxlEiMKDWZlY19jb2Rld29yZHMYCyABKAZSDGZlY0NvZGV3b3JkcxIuChNmZWNfY29ycmVjdGVkX3VuaXRzGAwgASgGUhFmZWNDb3JyZWN0ZWRVbml0cxImCg94Z2VtX2tleV9lcnJvcnMYDSABKAZSDXhnZW1LZXlFcnJvcnMSGwoJeGdlbV9sb3NzGA4gASgGUgh4Z2VtTG9zcxImCg9yeF9wbG9hbXNfZXJyb3IYDyABKAZSDXJ4UGxvYW1zRXJyb3ISKwoScnhfcGxvYW1zX25vbl9pZGxlGBAgASgGUg9yeFBsb2Ftc05vbklkbGUSFwoHcnhfb21jaRgRIAEoBlIGcnhPbWNpEjgKGXJ4X29tY2lfcGFja2V0c19jcmNfZXJyb3IYEiABKAZSFXJ4T21jaVBhY2tldHNDcmNFcnJvchIZCghyeF9ieXRlcxgTIAEoBlIHcnhCeXRlcxIdCgpyeF9wYWNrZXRzGBQgASgGUglyeFBhY2tldHMSGQoIdHhfYnl0ZXMYFSABKAZSB3R4Qnl0ZXMSHQoKdHhfcGFja2V0cxgWIAEoBlIJdHhQYWNrZXRzEiEKDGJlcl9yZXBvcnRlZBgXIAEoBlILYmVyUmVwb3J0ZWQSHwoLbGNkZ19lcnJvcnMYGCABKAZSCmxjZGdFcnJvcnMSHQoKcmRpX2Vycm9ycxgZIAEoBlIJcmRpRXJyb3JzEhwKCXRpbWVzdGFtcBgaIAEoB1IJdGltZXN0YW1wIt0BChFHZW1Qb3J0U3RhdGlzdGljcxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSHQoKZ2VtcG9ydF9pZBgCIAEoB1IJZ2VtcG9ydElkEh0KCnJ4X3BhY2tldHMYAyABKAZSCXJ4UGFja2V0cxIZCghyeF9ieXRlcxgEIAEoBlIHcnhCeXRlcxIdCgp0eF9wYWNrZXRzGAUgASgGUgl0eFBhY2tldHMSGQoIdHhfYnl0ZXMYBiABKAZSB3R4Qnl0ZXMSHAoJdGltZXN0YW1wGBogASgHUgl0aW1lc3RhbXAiuwEKDkZsb3dTdGF0aXN0aWNzEhcKB2Zsb3dfaWQYASABKAdSBmZsb3dJZBIZCghyeF9ieXRlcxgCIAEoBlIHcnhCeXRlcxIdCgpyeF9wYWNrZXRzGAMgASgGUglyeFBhY2tldHMSGQoIdHhfYnl0ZXMYCCABKAZSB3R4Qnl0ZXMSHQoKdHhfcGFja2V0cxgJIAEoBlIJdHhQYWNrZXRzEhwKCXRpbWVzdGFtcBgQIAEoB1IJdGltZXN0YW1wIkAKDUxvc0luZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhYKBnN0YXR1cxgCIAEoCVIGc3RhdHVzIl0KE0R5aW5nR2FzcEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMiowIKEk9udUFsYXJtSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIdCgpsb3Nfc3RhdHVzGAMgASgJUglsb3NTdGF0dXMSHQoKbG9iX3N0YXR1cxgEIAEoCVIJbG9iU3RhdHVzEigKEGxvcGNfbWlzc19zdGF0dXMYBSABKAlSDmxvcGNNaXNzU3RhdHVzEjEKFWxvcGNfbWljX2Vycm9yX3N0YXR1cxgGIAEoCVISbG9wY01pY0Vycm9yU3RhdHVzEh8KC2xvZmlfc3RhdHVzGAcgASgJUgpsb2ZpU3RhdHVzEiEKDGxvYW1pX3N0YXR1cxgIIAEoCVILbG9hbWlTdGF0dXMiZQobT251U3RhcnR1cEZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzIpkBChpPbnVTaWduYWxEZWdyYWRlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIzChZpbnZlcnNlX2JpdF9lcnJvcl9yYXRlGAQgASgHUhNpbnZlcnNlQml0RXJyb3JSYXRlIpMBChpPbnVEcmlmdE9mV2luZG93SW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxIUCgVkcmlmdBgEIAEoB1IFZHJpZnQSFwoHbmV3X2VxZBgFIAEoB1IGbmV3RXFkImgKHk9udUxvc3NPZk9tY2lDaGFubmVsSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyKaAQobT251U2lnbmFsc0ZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEjMKFmludmVyc2VfYml0X2Vycm9yX3JhdGUYBCABKAdSE2ludmVyc2VCaXRFcnJvclJhdGUiggEKIk9udVRyYW5zbWlzc2lvbkludGVyZmVyZW5jZVdhcm5pbmcSFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSFAoFZHJpZnQYBCABKAdSBWRyaWZ0InEKHk9udUFjdGl2YXRpb25GYWlsdXJlSW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIfCgtmYWlsX3JlYXNvbhgDIAEoB1IKZmFpbFJlYXNvbiJrCiFPbnVMb3NzT2ZLZXlTeW5jRmFpbHVyZUluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMiVAoSUmRpRXJyb3JJbmRpY2F0aW9uEiYKD3JkaV9lcnJvcl9jb3VudBgBIAEoBlINcmRpRXJyb3JDb3VudBIWCgZzdGF0dXMYAiABKAlSBnN0YXR1cyKWAQoYT251SXR1UG9uU3RhdHNJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEkEKDXJkaV9lcnJvcl9pbmQYAyABKAsyGy5vcGVub2x0LlJkaUVycm9ySW5kaWNhdGlvbkgAUgtyZGlFcnJvckluZEIHCgVzdGF0cyJOChxPbnVQcm9jZXNzaW5nRXJyb3JJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkImoKIE9udURlYWN0aXZhdGlvbkZhaWx1cmVJbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzImoKGU9udVJlbW90ZURlZmVjdEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSHQoKcmRpX2Vycm9ycxgDIAEoBlIJcmRpRXJyb3JzIqEBCihPbnVMb3NzT2ZHRU1DaGFubmVsRGVsaW5lYXRpb25JbmRpY2F0aW9uEhcKB2ludGZfaWQYASABKAdSBmludGZJZBIVCgZvbnVfaWQYAiABKAdSBW9udUlkEhYKBnN0YXR1cxgDIAEoCVIGc3RhdHVzEi0KEmRlbGluZWF0aW9uX2Vycm9ycxgEIAEoB1IRZGVsaW5lYXRpb25FcnJvcnMibQojT251UGh5c2ljYWxFcXVpcG1lbnRFcnJvckluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMibAoiT251TG9zc09mQWNrbm93bGVkZ2VtZW50SW5kaWNhdGlvbhIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cyKMAQomT251RGlmZmVyZW50aWFsUmVhY2hFeGNlZWRlZEluZGljYXRpb24SFwoHaW50Zl9pZBgBIAEoB1IGaW50ZklkEhUKBm9udV9pZBgCIAEoB1IFb251SWQSFgoGc3RhdHVzGAMgASgJUgZzdGF0dXMSGgoIZGlzdGFuY2UYBCABKAdSCGRpc3RhbmNlIvYBCgtHcm91cE1lbWJlchIhCgxpbnRlcmZhY2VfaWQYASABKA1SC2ludGVyZmFjZUlkEkkKDmludGVyZmFjZV90eXBlGAIgASgOMiIub3Blbm9sdC5Hcm91cE1lbWJlci5JbnRlcmZhY2VUeXBlUg1pbnRlcmZhY2VUeXBlEh4KC2dlbV9wb3J0X2lkGAMgASgNUglnZW1Qb3J0SWQSGgoIcHJpb3JpdHkYBCABKA1SCHByaW9yaXR5Ij0KDUludGVyZmFjZVR5cGUSBwoDUE9OEAASEAoMRVBPTl8xR19QQVRIEAESEQoNRVBPTl8xMEdfUEFUSBACIoYCCgVHcm91cBIZCghncm91cF9pZBgBIAEoDVIHZ3JvdXBJZBI8Cgdjb21tYW5kGAIgASgOMiIub3Blbm9sdC5Hcm91cC5Hcm91cE1lbWJlcnNDb21tYW5kUgdjb21tYW5kEi4KB21lbWJlcnMYAyADKAsyFC5vcGVub2x0Lkdyb3VwTWVtYmVyUgdtZW1iZXJzEicKBmFjdGlvbhgEIAEoCzIPLm9wZW5vbHQuQWN0aW9uUgZhY3Rpb24iSwoTR3JvdXBNZW1iZXJzQ29tbWFuZBIPCgtBRERfTUVNQkVSUxAAEhIKDlJFTU9WRV9NRU1CRVJTEAESDwoLU0VUX01FTUJFUlMQAiJdCgpWYWx1ZVBhcmFtEh4KA29udRgBIAEoCzIMLm9wZW5vbHQuT251UgNvbnUSLwoFdmFsdWUYAiABKA4yGS5leHRlbnNpb24uVmFsdWVUeXBlLlR5cGVSBXZhbHVlIsMCCg5Qb25SeFBvd2VyRGF0YRIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSFQoGb251X2lkGAIgASgHUgVvbnVJZBIWCgZzdGF0dXMYAyABKAlSBnN0YXR1cxJSCgtmYWlsX3JlYXNvbhgEIAEoDjIxLm9wZW5vbHQuUG9uUnhQb3dlckRhdGEuUnNzaU1lYXN1cmVtZW50RmFpbFJlYXNvblIKZmFpbFJlYXNvbhIpChFyeF9wb3dlcl9tZWFuX2RibRgFIAEoAVIOcnhQb3dlck1lYW5EYm0iagoZUnNzaU1lYXN1cmVtZW50RmFpbFJlYXNvbhIUChBGQUlMX1JFQVNPTl9OT05FEAASHAoYRkFJTF9SRUFTT05fTk9fREVMSU1JVEVSEAESGQoVRkFJTF9SRUFTT05fTk9fQUNDRVNTEAIiYgoUT251QWxsb2NJZFN0YXRpc3RpY3MSFgoGaW50ZklkGAEgASgHUgZpbnRmSWQSGAoHYWxsb2NJZBgCIAEoB1IHYWxsb2NJZBIYCgdyeEJ5dGVzGAMgASgGUgdyeEJ5dGVzIqMCCgdPbnVJbmZvEhUKBm9udV9pZBgBIAEoB1IFb251SWQSLwoFc3RhdGUYAiABKA4yGS5vcGVub2x0Lk9udUluZm8uT251U3RhdGVSBXN0YXRlEicKBGxvc2kYAyABKA4yEy5vcGVub2x0LkFsYXJtU3RhdGVSBGxvc2kSJwoEbG9maRgEIAEoDjITLm9wZW5vbHQuQWxhcm1TdGF0ZVIEbG9maRIpCgVsb2FtaRgFIAEoDjITLm9wZW5vbHQuQWxhcm1TdGF0ZVIFbG9hbWkiUwoIT251U3RhdGUSCwoHVU5LTk9XThAAEhIKDk5PVF9DT05GSUdVUkVEEAESCgoGQUNUSVZFEAISDAoISU5BQ1RJVkUQAxIMCghESVNBQkxFRBAEIucBCgtQb25JbnRmSW5mbxIXCgdpbnRmX2lkGAEgASgHUgZpbnRmSWQSNwoFc3RhdGUYAyABKA4yIS5vcGVub2x0LlBvbkludGZJbmZvLlBvbkludGZTdGF0ZVIFc3RhdGUSJQoDbG9zGAQgASgOMhMub3Blbm9sdC5BbGFybVN0YXRlUgNsb3MiXwoMUG9uSW50ZlN0YXRlEgsKB1VOS05PV04QABISCg5BQ1RJVkVfV09SS0lORxABEhIKDkFDVElWRV9TVEFOREJZEAISDAoISU5BQ1RJVkUQAxIMCghESVNBQkxFRBAEIoYBCh1JbnRlcmZhY2VPbnVTZXJpYWxOdW1iZXJPbnVJZBJOChJpbnRmX2lkX3NlcmlhbF9udW0YASABKAsyIS5vcGVub2x0LkludGVyZmFjZU9udVNlcmlhbE51bWJlclIPaW50ZklkU2VyaWFsTnVtEhUKBm9udV9pZBgCIAEoB1IFb251SWQidgoYSW50ZXJmYWNlT251U2VyaWFsTnVtYmVyEhcKB2ludGZfaWQYASABKAdSBmludGZJZBJBChFvbnVfc2VyaWFsX251bWJlchgCIAEoCzIVLm9wZW5vbHQuU2VyaWFsTnVtYmVyUg9vbnVTZXJpYWxOdW1iZXIiBwoFRW1wdHkqHQoKQWxhcm1TdGF0ZRIHCgNPRkYQABIGCgJPThABMqYbCgdPcGVub2x0EkQKCkRpc2FibGVPbHQSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIWgtPkkwIQIgsvdjEvRGlzYWJsZToBKhJGCgtSZWVuYWJsZU9sdBIOLm9wZW5vbHQuRW1wdHkaDi5vcGVub2x0LkVtcHR5IheC0+STAhEiDC92MS9SZWVuYWJsZToBKhJFCgtBY3RpdmF0ZU9udRIMLm9wZW5vbHQuT251Gg4ub3Blbm9sdC5FbXB0eSIYgtPkkwISIg0vdjEvRW5hYmxlT251OgEqEkgKDURlYWN0aXZhdGVPbnUSDC5vcGVub2x0Lk9udRoOLm9wZW5vbHQuRW1wdHkiGYLT5JMCEyIOL3YxL0Rpc2FibGVPbnU6ASoSQwoJRGVsZXRlT251Egwub3Blbm9sdC5PbnUaDi5vcGVub2x0LkVtcHR5IhiC0+STAhIiDS92MS9EZWxldGVPbnU6ASoSSQoKT21jaU1zZ091dBIQLm9wZW5vbHQuT21jaU1zZxoOLm9wZW5vbHQuRW1wdHkiGYLT5JMCEyIOL3YxL09tY2lNc2dPdXQ6ASoSTwoMT251UGFja2V0T3V0EhIub3Blbm9sdC5PbnVQYWNrZXQaDi5vcGVub2x0LkVtcHR5IhuC0+STAhUiEC92MS9PbnVQYWNrZXRPdXQ6ASoSWAoPVXBsaW5rUGFja2V0T3V0EhUub3Blbm9sdC5VcGxpbmtQYWNrZXQaDi5vcGVub2x0LkVtcHR5Ih6C0+STAhgiEy92MS9VcGxpbmtQYWNrZXRPdXQ6ASoSQAoHRmxvd0FkZBINLm9wZW5vbHQuRmxvdxoOLm9wZW5vbHQuRW1wdHkiFoLT5JMCECILL3YxL0Zsb3dBZGQ6ASoSRgoKRmxvd1JlbW92ZRINLm9wZW5vbHQuRmxvdxoOLm9wZW5vbHQuRW1wdHkiGYLT5JMCEyIOL3YxL0Zsb3dSZW1vdmU6ASoSUwoOSGVhcnRiZWF0Q2hlY2sSDi5vcGVub2x0LkVtcHR5GhIub3Blbm9sdC5IZWFydGJlYXQiHYLT5JMCFyISL3YxL0hlYXJ0YmVhdENoZWNrOgEqEk0KC0VuYWJsZVBvbklmEhIub3Blbm9sdC5JbnRlcmZhY2UaDi5vcGVub2x0LkVtcHR5IhqC0+STAhQiDy92MS9FbmFibGVQb25JZjoBKhJPCgxEaXNhYmxlUG9uSWYSEi5vcGVub2x0LkludGVyZmFjZRoOLm9wZW5vbHQuRW1wdHkiG4LT5JMCFSIQL3YxL0Rpc2FibGVQb25JZjoBKhJSCg1HZXREZXZpY2VJbmZvEg4ub3Blbm9sdC5FbXB0eRoTLm9wZW5vbHQuRGV2aWNlSW5mbyIcgtPkkwIWIhEvdjEvR2V0RGV2aWNlSW5mbzoBKhI/CgZSZWJvb3QSDi5vcGVub2x0LkVtcHR5Gg4ub3Blbm9sdC5FbXB0eSIVgtPkkwIPIgovdjEvUmVib290OgEqElUKEUNvbGxlY3RTdGF0aXN0aWNzEg4ub3Blbm9sdC5FbXB0eRoOLm9wZW5vbHQuRW1wdHkiIILT5JMCGiIVL3YxL0NvbGxlY3RTdGF0aXN0aWNzOgEqElkKEEdldE9udVN0YXRpc3RpY3MSDC5vcGVub2x0Lk9udRoWLm9wZW5vbHQuT251U3RhdGlzdGljcyIfgtPkkwIZIhQvdjEvR2V0T251U3RhdGlzdGljczoBKhJrChRHZXRHZW1Qb3J0U3RhdGlzdGljcxISLm9wZW5vbHQuT251UGFja2V0Ghoub3Blbm9sdC5HZW1Qb3J0U3RhdGlzdGljcyIjgtPkkwIdIhgvdjEvR2V0R2VtUG9ydFN0YXRpc3RpY3M6ASoScgoXQ3JlYXRlVHJhZmZpY1NjaGVkdWxlcnMSHy50ZWNoX3Byb2ZpbGUuVHJhZmZpY1NjaGVkdWxlcnMaDi5vcGVub2x0LkVtcHR5IiaC0+STAiAiGy92MS9DcmVhdGVUcmFmZmljU2NoZWR1bGVyczoBKhJyChdSZW1vdmVUcmFmZmljU2NoZWR1bGVycxIfLnRlY2hfcHJvZmlsZS5UcmFmZmljU2NoZWR1bGVycxoOLm9wZW5vbHQuRW1wdHkiJoLT5JMCICIbL3YxL1JlbW92ZVRyYWZmaWNTY2hlZHVsZXJzOgEqEmYKE0NyZWF0ZVRyYWZmaWNRdWV1ZXMSGy50ZWNoX3Byb2ZpbGUuVHJhZmZpY1F1ZXVlcxoOLm9wZW5vbHQuRW1wdHkiIoLT5JMCHCIXL3YxL0NyZWF0ZVRyYWZmaWNRdWV1ZXM6ASoSZgoTUmVtb3ZlVHJhZmZpY1F1ZXVlcxIbLnRlY2hfcHJvZmlsZS5UcmFmZmljUXVldWVzGg4ub3Blbm9sdC5FbXB0eSIigtPkkwIcIhcvdjEvUmVtb3ZlVHJhZmZpY1F1ZXVlczoBKhI7ChBFbmFibGVJbmRpY2F0aW9uEg4ub3Blbm9sdC5FbXB0eRoTLm9wZW5vbHQuSW5kaWNhdGlvbiIAMAESXQoVUGVyZm9ybUdyb3VwT3BlcmF0aW9uEg4ub3Blbm9sdC5Hcm91cBoOLm9wZW5vbHQuRW1wdHkiJILT5JMCHiIZL3YxL1BlcmZvcm1Hcm91cE9wZXJhdGlvbjoBKhJJCgtEZWxldGVHcm91cBIOLm9wZW5vbHQuR3JvdXAaDi5vcGVub2x0LkVtcHR5IhqC0+STAhQiDy92MS9EZWxldGVHcm91cDoBKhJXCgtHZXRFeHRWYWx1ZRITLm9wZW5vbHQuVmFsdWVQYXJhbRoXLmV4dGVuc2lvbi5SZXR1cm5WYWx1ZXMiGoLT5JMCFCIPL3YxL0dldEV4dFZhbHVlOgEqEl0KEU9udUl0dVBvbkFsYXJtU2V0EhYuY29uZmlnLk9udUl0dVBvbkFsYXJtGg4ub3Blbm9sdC5FbXB0eSIggtPkkwIaIhUvdjEvT251SXR1UG9uQWxhcm1TZXQ6ASoScAoZR2V0TG9naWNhbE9udURpc3RhbmNlWmVybxIMLm9wZW5vbHQuT251Ghsub3Blbm9sdC5PbnVMb2dpY2FsRGlzdGFuY2UiKILT5JMCIiIdL3YxL0dldExvZ2ljYWxPbnVEaXN0YW5jZVplcm86ASoSaAoVR2V0TG9naWNhbE9udURpc3RhbmNlEgwub3Blbm9sdC5PbnUaGy5vcGVub2x0Lk9udUxvZ2ljYWxEaXN0YW5jZSIkgtPkkwIeIhkvdjEvR2V0TG9naWNhbE9udURpc3RhbmNlOgEqElQKDUdldFBvblJ4UG93ZXISDC5vcGVub2x0Lk9udRoXLm9wZW5vbHQuUG9uUnhQb3dlckRhdGEiHILT5JMCFiIRL3YxL0dldFBvblJ4UG93ZXI6ASoSRwoKR2V0T251SW5mbxIMLm9wZW5vbHQuT251GhAub3Blbm9sdC5PbnVJbmZvIhmC0+STAhMiDi92MS9HZXRPbnVJbmZvOgEqEmAKE0dldFBvbkludGVyZmFjZUluZm8SEi5vcGVub2x0LkludGVyZmFjZRoULm9wZW5vbHQuUG9uSW50ZkluZm8iH4LT5JMCGSIUL3YxL0dldEludGVyZmFjZUluZm86ASoSbgoUR2V0QWxsb2NJZFN0YXRpc3RpY3MSEi5vcGVub2x0Lk9udVBhY2tldBodLm9wZW5vbHQuT251QWxsb2NJZFN0YXRpc3RpY3MiI4LT5JMCHSIYL3YxL0dldEFsbG9jSWRTdGF0aXN0aWNzOgEqEmcKFEdldFBvblBvcnRTdGF0aXN0aWNzEhIub3Blbm9sdC5JbnRlcmZhY2UaFi5jb21tb24uUG9ydFN0YXRpc3RpY3MiI4LT5JMCHSIYL3YxL0dldFBvblBvcnRTdGF0aXN0aWNzOgEqEmcKFEdldE5uaVBvcnRTdGF0aXN0aWNzEhIub3Blbm9sdC5JbnRlcmZhY2UaFi5jb21tb24uUG9ydFN0YXRpc3RpY3MiI4LT5JMCHSIYL3YxL0dldE5uaVBvcnRTdGF0aXN0aWNzOgEqElwKCkRpc2FibGVPbnUSJi5vcGVub2x0LkludGVyZmFjZU9udVNlcmlhbE51bWJlck9udUlkGg4ub3Blbm9sdC5FbXB0eSIWgtPkkwIQIg4vdjEvRGlzYWJsZU9udRJaCglFbmFibGVPbnUSJi5vcGVub2x0LkludGVyZmFjZU9udVNlcmlhbE51bWJlck9udUlkGg4ub3Blbm9sdC5FbXB0eSIVgtPkkwIPIg0vdjEvRW5hYmxlT251Em8KFkRpc2FibGVPbnVTZXJpYWxOdW1iZXISIS5vcGVub2x0LkludGVyZmFjZU9udVNlcmlhbE51bWJlchoOLm9wZW5vbHQuRW1wdHkiIoLT5JMCHCIaL3YxL0Rpc2FibGVPbnVTZXJpYWxOdW1iZXISbQoVRW5hYmxlT251U2VyaWFsTnVtYmVyEiEub3Blbm9sdC5JbnRlcmZhY2VPbnVTZXJpYWxOdW1iZXIaDi5vcGVub2x0LkVtcHR5IiGC0+STAhsiGS92MS9FbmFibGVPbnVTZXJpYWxOdW1iZXJCXQobb3JnLm9wZW5jb3JkLnZvbHRoYS5vcGVub2x0Qg1Wb2x0aGFPcGVuT0xUWi9naXRodWIuY29tL29wZW5jb3JkL3ZvbHRoYS1wcm90b3MvdjUvZ28vb3Blbm9sdEqRlwIKBxIFDgCrBxAK8QQKAQwSAw4AEjLmBCBDb3B5cmlnaHQgMjAxOC0yMDI0IE9wZW4gTmV0d29ya2luZyBGb3VuZGF0aW9uIChPTkYpIGFuZCB0aGUgT05GIENvbnRyaWJ1dG9ycwoKIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgoKICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKCiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMg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BAsKDQoFBDcCAAESBKgHFRwKDQoFBDcCAAMSBKgHHyAKDAoEBDcCARIEqQcEKwoPCgUENwIBBBIGqQcEqAchCg0KBQQ3AgEGEgSpBwQQCg0KBQQ3AgEBEgSpBxUmCg0KBQQ3AgEDEgSpBykqCgoKAgQ4EgSrBwAQCgsKAwQ4ARIEqwcIDWIGcHJvdG8zCpQiCiF2b2x0aGFfcHJvdG9zL2ludGVyX2FkYXB0ZXIucHJvdG8SDWludGVyX2FkYXB0ZXIaGnZvbHRoYV9wcm90b3MvY29tbW9uLnByb3RvGhp2b2x0aGFfcHJvdG9zL3ZvbHRoYS5wcm90bxogdm9sdGhhX3Byb3Rvcy90ZWNoX3Byb2ZpbGUucHJvdG8aG3ZvbHRoYV9wcm90b3Mvb3Blbm9sdC5wcm90bxoadm9sdGhhX3Byb3Rvcy9kZXZpY2UucHJvdG8i/wEKC09tY2lNZXNzYWdlEhgKB21lc3NhZ2UYASABKAxSB21lc3NhZ2USQgoOY29ubmVjdF9zdGF0dXMYAiABKA4yGy5jb21tb24uQ29ubmVjdFN0YXR1cy5UeXBlc1INY29ubmVjdFN0YXR1cxJACg1wcm94eV9hZGRyZXNzGAMgASgLMhsuZGV2aWNlLkRldmljZS5Qcm94eUFkZHJlc3NSDHByb3h5QWRkcmVzcxIoChBwYXJlbnRfZGV2aWNlX2lkGAQgASgJUg5wYXJlbnREZXZpY2VJZBImCg9jaGlsZF9kZXZpY2VfaWQYBSABKAlSDWNoaWxkRGV2aWNlSWQiggIKDE9tY2lNZXNzYWdlcxIaCghtZXNzYWdlcxgBIAMoDFIIbWVzc2FnZXMSQgoOY29ubmVjdF9zdGF0dXMYAiABKA4yGy5jb21tb24uQ29ubmVjdFN0YXR1cy5UeXBlc1INY29ubmVjdFN0YXR1cxJACg1wcm94eV9hZGRyZXNzGAMgASgLMhsuZGV2aWNlLkRldmljZS5Qcm94eUFkZHJlc3NSDHByb3h5QWRkcmVzcxIoChBwYXJlbnRfZGV2aWNlX2lkGAQgASgJUg5wYXJlbnREZXZpY2VJZBImCg9jaGlsZF9kZXZpY2VfaWQYBSABKAlSDWNoaWxkRGV2aWNlSWQipwIKGlRlY2hQcm9maWxlRG93bmxvYWRNZXNzYWdlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSFQoGdW5pX2lkGAIgASgNUgV1bmlJZBIoChB0cF9pbnN0YW5jZV9wYXRoGAMgASgJUg50cEluc3RhbmNlUGF0aBJECgt0cF9pbnN0YW5jZRgEIAEoCzIhLnRlY2hfcHJvZmlsZS5UZWNoUHJvZmlsZUluc3RhbmNlSABSCnRwSW5zdGFuY2USUQoQZXBvbl90cF9pbnN0YW5jZRgFIAEoCzIlLnRlY2hfcHJvZmlsZS5FcG9uVGVjaFByb2ZpbGVJbnN0YW5jZUgAUg5lcG9uVHBJbnN0YW5jZUISChB0ZWNoX3RwX2luc3RhbmNlIpQBChREZWxldGVHZW1Qb3J0TWVzc2FnZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEhUKBnVuaV9pZBgCIAEoDVIFdW5pSWQSKAoQdHBfaW5zdGFuY2VfcGF0aBgDIAEoCVIOdHBJbnN0YW5jZVBhdGgSHgoLZ2VtX3BvcnRfaWQYBCABKA1SCWdlbVBvcnRJZCKNAQoSRGVsZXRlVGNvbnRNZXNzYWdlEhsKCWRldmljZV9pZBgBIAEoCVIIZGV2aWNlSWQSFQoGdW5pX2lkGAIgASgNUgV1bmlJZBIoChB0cF9pbnN0YW5jZV9wYXRoGAMgASgJUg50cEluc3RhbmNlUGF0aBIZCghhbGxvY19pZBgEIAEoDVIHYWxsb2NJZCJyChRPbnVJbmRpY2F0aW9uTWVzc2FnZRIbCglkZXZpY2VfaWQYASABKAlSCGRldmljZUlkEj0KDm9udV9pbmRpY2F0aW9uGAIgASgLMhYub3Blbm9sdC5PbnVJbmRpY2F0aW9uUg1vbnVJbmRpY2F0aW9uIuoBCiFUZWNoUHJvZmlsZUluc3RhbmNlUmVxdWVzdE1lc3NhZ2USGwoJZGV2aWNlX2lkGAEgASgJUghkZXZpY2VJZBIoChB0cF9pbnN0YW5jZV9wYXRoGAIgASgJUg50cEluc3RhbmNlUGF0aBIoChBwYXJlbnRfZGV2aWNlX2lkGAMgASgJUg5wYXJlbnREZXZpY2VJZBImCg9wYXJlbnRfcG9uX3BvcnQYBCABKA1SDXBhcmVudFBvblBvcnQSFQoGb251X2lkGAUgASgNUgVvbnVJZBIVCgZ1bmlfaWQYBiABKA1S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AgUDEgNDFBViBnByb3RvMwr7CQotdm9sdGhhX3Byb3Rvcy9vbHRfaW50ZXJfYWRhcHRlcl9zZXJ2aWNlLnByb3RvEhlvbHRfaW50ZXJfYWRhcHRlcl9zZXJ2aWNlGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvGiF2b2x0aGFfcHJvdG9zL2ludGVyX2FkYXB0ZXIucHJvdG8aGnZvbHRoYV9wcm90b3MvaGVhbHRoLnByb3RvMuICChZPbHRJbnRlckFkYXB0ZXJTZXJ2aWNlEj8KD0dldEhlYWx0aFN0YXR1cxISLmNvbW1vbi5Db25uZWN0aW9uGhQuaGVhbHRoLkhlYWx0aFN0YXR1cygBMAESRgoQUHJveHlPbWNpUmVxdWVzdBIaLmludGVyX2FkYXB0ZXIuT21jaU1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSSAoRUHJveHlPbWNpUmVxdWVzdHMSGy5pbnRlcl9hZGFwdGVyLk9tY2lNZXNzYWdlcxoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJ1ChZHZXRUZWNoUHJvZmlsZUluc3RhbmNlEjAuaW50ZXJfYWRhcHRlci5UZWNoUHJvZmlsZUluc3RhbmNlUmVxdWVzdE1lc3NhZ2UaKS5pbnRlcl9hZGFwdGVyLlRlY2hQcm9maWxlRG93bmxvYWRNZXNzYWdlQpABCi1vcmcub3BlbmNvcmQudm9sdGhhLm9sdF9pbnRlcl9hZGFwdGVyX3NlcnZpY2VCHFZvbHRoYU9sdEludGVyQWRhcHRlclNlcnZpY2VaQWdpdGh1Yi5jb20vb3BlbmNvcmQvdm9sdGhhLXByb3Rvcy92NS9nby9vbHRfaW50ZXJfYWRhcHRlcl9zZXJ2aWNlSrYECgYSBAAAFgEKCAoBDBIDAAASCggKAQgSAwIAWAoJCgIICxIDAgBYCggKAQgSAwMARgoJCgIIARIDAwBGCggKAQgSAwQAPQoJCgIICBIDBAA9CggKAQISAwYAIgoJCgIDABIDCAAkCgkKAgMBEgMJACUKCQoCAwISAwoAKwoJCgIDAxIDCwAkCgoKAgYAEgQNABYBCgoKAwYAARIDDQgeCqcBCgQGAAIAEgMQBFcamQEgR2V0SGVhbHRoU3RhdHVzIGlzIHVzZWQgYnkgYSBPbHRJbnRlckFkYXB0ZXJTZXJ2aWNlIGNsaWVudCB0byBkZXRlY3QgYSBjb25uZWN0aW9uCiBsb3N0IHdpdGggdGhlIGdSUEMgc2VydmVyIGhvc3RpbmcgdGhlIE9sdEludGVyQWRhcHRlclNlcnZpY2Ugc2VydmljZQoKDAoFBgACAAESAxAIFwoMCgUGAAIABRIDEBgeCgwKBQYAAgACEgMQHzAKDAoFBgACAAYSAxA7QQoMCgUGAAIAAxIDEEJVCgsKBAYAAgESAxMEVAoMCgUGAAIBARIDEwgYCgwKBQYAAgECEgMTGTIKDAoFBgACAQMSAxM9UgoLCgQGAAICEgMUBFYKDAoFBgACAgESAxQIGQoMCgUGAAICAhIDFBo0CgwKBQYAAgIDEgMUP1QKDAoEBgACAxIEFQSDAQoMCgUGAAIDARIDFQgeCgwKBQYAAgMCEgMVH04KDQoFBgACAwMSBBVZgQFiBnByb3RvMwrkCwotdm9sdGhhX3Byb3Rvcy9vbnVfaW50ZXJfYWRhcHRlcl9zZXJ2aWNlLnByb3RvEhlvbnVfaW50ZXJfYWRhcHRlcl9zZXJ2aWNlGhp2b2x0aGFfcHJvdG9zL2NvbW1vbi5wcm90bxobZ29vZ2xlL3Byb3RvYnVmL2VtcHR5LnByb3RvGiF2b2x0aGFfcHJvdG9zL2ludGVyX2FkYXB0ZXIucHJvdG8aGnZvbHRoYV9wcm90b3MvaGVhbHRoLnByb3RvMt8DChZPbnVJbnRlckFkYXB0ZXJTZXJ2aWNlEj8KD0dldEhlYWx0aFN0YXR1cxISLmNvbW1vbi5Db25uZWN0aW9uGhQuaGVhbHRoLkhlYWx0aFN0YXR1cygBMAESTAoNT251SW5kaWNhdGlvbhIjLmludGVyX2FkYXB0ZXIuT251SW5kaWNhdGlvbk1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHkSRAoOT21jaUluZGljYXRpb24SGi5pbnRlcl9hZGFwdGVyLk9tY2lNZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5ElgKE0Rvd25sb2FkVGVjaFByb2ZpbGUSKS5pbnRlcl9hZGFwdGVyLlRlY2hQcm9maWxlRG93bmxvYWRNZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkwKDURlbGV0ZUdlbVBvcnQSIy5pbnRlcl9hZGFwdGVyLkRlbGV0ZUdlbVBvcnRNZXNzYWdlGhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EkgKC0RlbGV0ZVRDb250EiEuaW50ZXJfYWRhcHRlci5EZWxldGVUY29udE1lc3NhZ2UaFi5nb29nbGUucHJvdG9idWYuRW1wdHlCkAEKLW9yZy5vcGVuY29yZC52b2x0aGEub251X2ludGVyX2FkYXB0ZXJfc2VydmljZUIcVm9sdGhhT251SW50ZXJBZGFwdGVyU2VydmljZVpBZ2l0aHViLmNvbS9vcGVuY29yZC92b2x0aGEtcHJvdG9zL3Y1L2dvL29udV9pbnRlcl9hZGFwdGVyX3NlcnZpY2VKogUKBhIEAAAXAQoICgEMEgMAABIKCAoBCBIDAgBYCgkKAggLEgMCAFgKCAoBCBIDAwBGCgkKAggBEgMDAEYKCAoBCBIDBAA9CgkKAggIEgMEAD0KCAoBAhIDBgAiCgkKAgMAEgMIACQKCQoCAwESAwkAJQoJCgIDAhIDCgArCgkKAgMDEgMLACQKCgoCBgASBA0AFwEKCgoDBgABEgMNCB4KpwEKBAYAAgASAxAEVxqZASBHZXRIZWFsdGhTdGF0dXMgaXMgdXNlZCBieSBhIE9udUludGVyQWRhcHRlclNlcnZpY2UgY2xpZW50IHRvIGRldGVjdCBhIGNvbm5lY3Rpb24KIGxvc3Qgd2l0aCB0aGUgZ1JQQyBzZXJ2ZXIgaG9zdGluZyB0aGUgT251SW50ZXJBZGFwdGVyU2VydmljZSBzZXJ2aWNlCgoMCgUGAAIAARIDEAgXCgwKBQYAAgAFEgMQGB4KDAoFBgACAAISAxAfMAoMCgUGAAIABhIDEDtBCgwKBQYAAgADEgMQQlUKCwoEBgACARIDEgRaCgwKBQYAAgEBEgMSCBUKDAoFBgACAQISAxIWOAoMCgUGAAIBAxIDEkNYCgsKBAYAAgISAxMEUgoMCgUGAAICARIDEwgWCgwKBQYAAgICEgMTFzAKDAoFBgACAgMSAxM7UAoLCgQGAAIDEgMUBGYKDAoFBgACAwESAxQIGwoMCgUGAAIDAhIDFBxECgwKBQYAAgMDEgMUT2QKCwoEBgACBBIDFQRaCgwKBQYAAgQBEgMVCBUKDAoFBgACBAISAxUWOAoMCgUGAAIEAxIDFUNYCgsKBAYAAgUSAxYEVgoMCgUGAAIFARIDFggTCgwKBQYAAgUCEgMWFDQKDAoFBgACBQMSAxY/VGIGcHJvdG8z